2017-02-13 18:32:53 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
2017-02-26 03:16:41 +01:00
|
|
|
# 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
|
|
|
|
|
|
|
|
|
2017-02-25 10:23:51 +01:00
|
|
|
# Check Jsons format, and beautify
|
2017-02-13 18:32:53 +01:00
|
|
|
./jq_all_the_things.sh
|
2017-02-25 10:23:51 +01:00
|
|
|
rc=$?
|
2017-07-25 17:39:06 +02:00
|
|
|
if [[ $rc != 0 ]]; then
|
2017-02-25 10:23:51 +01:00
|
|
|
exit $rc
|
|
|
|
fi
|
2017-02-13 18:32:53 +01:00
|
|
|
|
2017-02-25 10:23:51 +01:00
|
|
|
set -e
|
|
|
|
set -x
|
2017-02-13 18:32:53 +01:00
|
|
|
|
2017-02-26 03:16:41 +01:00
|
|
|
diffs=`git status --porcelain | wc -l`
|
|
|
|
if ! [ $diffs -eq 0 ]; then
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR: Please commit your changes, and make sure you run ./jq_all_the_things.sh before committing."
|
2017-02-26 03:16:41 +01:00
|
|
|
if [ $# -eq 0 ]; then
|
|
|
|
exit 1
|
2017-10-25 18:25:36 +02:00
|
|
|
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
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR: Please make sure you run remove the executable flag on the json files before committing: find -name "*.json" -exec chmod -x \"{}\" \\;"
|
2017-10-25 18:25:36 +02:00
|
|
|
exit 1
|
2017-02-26 03:16:41 +01:00
|
|
|
fi
|
2017-02-13 18:32:53 +01:00
|
|
|
|
2017-10-25 18:25:36 +02:00
|
|
|
|
2017-02-25 10:23:51 +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
|
2017-02-25 10:23:51 +01:00
|
|
|
rc=$?
|
2017-07-25 17:39:06 +02:00
|
|
|
if [[ $rc != 0 ]]; then
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR on ${dir}"
|
2017-02-25 10:23:51 +01:00
|
|
|
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
|
2017-02-25 10:23:51 +01:00
|
|
|
rc=$?
|
2017-07-25 17:39:06 +02:00
|
|
|
if [[ $rc != 0 ]]; then
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR on ${dir}"
|
2017-07-25 17:39:06 +02:00
|
|
|
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
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR on ${dir}"
|
2017-07-25 17:39:06 +02:00
|
|
|
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
|
2020-10-02 16:55:55 +02:00
|
|
|
echo "ERROR on ${dir}"
|
2017-02-25 10:23:51 +01:00
|
|
|
exit $rc
|
|
|
|
fi
|
2017-02-13 18:32:53 +01:00
|
|
|
echo ''
|
|
|
|
done
|
2019-08-30 09:57:05 +02:00
|
|
|
|
|
|
|
# check for empyt strings in clusters
|
|
|
|
python3 -m tools.chk_empty_strings
|