misp-galaxy/validate_all.sh

91 lines
1.7 KiB
Bash
Raw Normal View History

2017-02-13 18:32:53 +01:00
#!/bin/bash
# This file launch all validation of the jsons and schemas
# By default, It stop on file not commited.
# you could test with command ./validate_all.sh something
# Check Jsons format, and beautify
2017-02-13 18:32:53 +01:00
./jq_all_the_things.sh
rc=$?
if [[ $rc != 0 ]]; then
exit $rc
fi
2017-02-13 18:32:53 +01:00
set -e
set -x
2017-02-13 18:32:53 +01:00
diffs=`git status --porcelain | wc -l`
if ! [ $diffs -eq 0 ]; then
echo "ERROR: Please commit your changes, and make sure you run ./jq_all_the_things.sh before committing."
if [ $# -eq 0 ]; then
exit 1
fi
fi
# remove the exec flag on the json files
find -name "*.json" -exec chmod -x "{}" \;
diffs=`git status --porcelain | wc -l`
if ! [ $diffs -eq 0 ]; then
echo "ERROR: Please make sure you run remove the executable flag on the json files before committing: find -name "*.json" -exec chmod -x \"{}\" \\;"
exit 1
fi
2017-02-13 18:32:53 +01:00
# Validate schemas
2017-02-13 18:52:54 +01:00
for dir in clusters/*.json
2017-02-13 18:32:53 +01:00
do
echo -n "${dir}: "
2017-02-14 10:19:20 +01:00
jsonschema -i ${dir} schema_clusters.json
rc=$?
if [[ $rc != 0 ]]; then
echo "ERROR on ${dir}"
exit $rc
fi
2017-02-14 10:19:20 +01:00
echo ''
done
for dir in galaxies/*.json
do
echo -n "${dir}: "
jsonschema -i ${dir} schema_galaxies.json
rc=$?
if [[ $rc != 0 ]]; then
echo "ERROR on ${dir}"
exit $rc
fi
echo ''
done
for dir in misp/*.json
do
echo -n "${dir}: "
jsonschema -i ${dir} schema_misp.json
rc=$?
if [[ $rc != 0 ]]; then
echo "ERROR on ${dir}"
exit $rc
fi
echo ''
done
for dir in vocabularies/*/*.json
do
echo -n "${dir}: "
jsonschema -i ${dir} schema_vocabularies.json
rc=$?
if [[ $rc != 0 ]]; then
echo "ERROR on ${dir}"
exit $rc
fi
2017-02-13 18:32:53 +01:00
echo ''
done
# check for empty strings in clusters
python3 -m tools.chk_empty_strings
echo "If you see this message, all is probably well."