diff options
Diffstat (limited to 'validators/bash/README.md')
| -rw-r--r-- | validators/bash/README.md | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/validators/bash/README.md b/validators/bash/README.md new file mode 100644 index 0000000..3692a1d --- /dev/null +++ b/validators/bash/README.md @@ -0,0 +1,60 @@ +# Bash Validator + +A Bash script for validating `.gitinfo` files. + +## Requirements + +- Bash 4+ +- [jq](https://jqlang.github.io/jq/) (JSON processor) + +Install jq: + +```bash +# Debian/Ubuntu +apt install jq + +# macOS +brew install jq + +# Windows (via Chocolatey) +choco install jq +``` + +## Usage + +```bash +# Make executable (first time only) +chmod +x validate.sh + +# Validate .gitinfo in current directory +./validate.sh + +# Validate a specific file +./validate.sh path/to/.gitinfo +``` + +## Features + +- Parses JSONC (strips `//` and `/* */` comments) +- Validates against the gitinfo JSON Schema +- Checks types and formats (URI, email) +- Enforces `additionalProperties: false` +- Returns exit code 0 on success, 1 on failure +- Color-coded output (green for success, red for errors) + +## Example Output + +``` +✓ .gitinfo is valid +``` + +``` +Validation failed for .gitinfo: + - .root: invalid URI "not-a-url" + - root: unknown property "invalid_field" +``` + +## Limitations + +- Comment stripping is simplified and may not handle edge cases with comments inside strings +- For complex validation, consider using the Node.js validator |
