aboutsummaryrefslogtreecommitdiff
path: root/validators/bash/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'validators/bash/README.md')
-rw-r--r--validators/bash/README.md60
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