Files
troupe-standup/wizard-work/spark/json_dir_validator.sh

31 lines
819 B
Bash
Executable File

#!/bin/bash
# json_dir_validator.sh - Validate all JSON files in a directory
# Usage: ./json_dir_validator.sh [directory]
# Returns: exit 0 if all valid JSON, exit 1 if any invalid, lists problems
dir="${1:-.}"
if [[ ! -d "$dir" ]]; then
echo "ERROR: '$dir' is not a directory" >&2
exit 2
fi
invalid_count=0
valid_count=0
while IFS= read -r -d '' file; do
if python3 -c "import json; json.load(open('$file'))" 2>/dev/null; then
valid_count=$((valid_count + 1))
else
echo "INVALID: $file"
invalid_count=$((invalid_count + 1))
fi
done < <(find "$dir" -name '*.json' -type f -print0 2>/dev/null)
if [[ $invalid_count -gt 0 ]]; then
echo "FAILED: $invalid_count invalid JSON files found"
exit 1
else
echo "OK: All $valid_count JSON files are valid"
exit 0
fi