hack/verify-jsonformat.sh
68912b50
 #!/bin/bash
 
 # Usage:
 #
 # To only verify that there are no errors in JSON files, run:
 # $ ./hack/verify-jsonformat.sh
 #
 # Additionally, to verify also the formatting of JSON file, run:
 # $ ./hack/verify-jsonformat.sh --format
 #
 # In case there is a formatting error, you can use this command to fix it
 # automatically:
 # $ ./hack/verify-jsonformat.sh --format --fix
 #
 
 OS_ROOT=$(dirname "${BASH_SOURCE}")/..
 source "${OS_ROOT}/hack/common.sh"
 
 cd "${OS_ROOT}"
 
 json_files=$(find {api,examples,docs,images,plugins,test} -name "*.json")
 tmp_dir=$(mktemp -d --suffix=jsonformat)
 found=0
 
 set +e
 
 format="${1:-""}"
 fix="${2:-""}"
 
 for f in $json_files; do
   tmp_file="${tmp_dir}$(basename $f)"
   go run ./hack/jsonformat.go ${f} > ${tmp_file}
   result=$?
   if [ "${format}" == "--format" ]; then
     if ! diff --brief ${f} ${tmp_file} > /dev/null; then
       if [ "$result" == "0" -a "${fix}" == "--fix" ]; then
         echo "Fixing JSON formatting for '${f}'"
         cp ${tmp_file} ${f}
       else
         echo "JSON formatting problem: '${f}'"
         found=1
       fi
       continue
     fi
   fi
   [ "$result" != "0" ] && found=1
 done
 
 rm -rf ${tmp_dir}
 
 if [ "$found" == "1" ]; then
   echo -e "\nThere are problems with some JSON files, to verify them you can run:"
   echo -e "$ go run ./hack/jsonformat.go <filename>\n"
   exit
 fi