diff --git a/check-my-stuff b/check-my-stuff index 781037139..d5875b708 100755 --- a/check-my-stuff +++ b/check-my-stuff @@ -10,4 +10,5 @@ BASE="$(realpath "$0")" BASE="$(dirname "$BASE")" cd "$BASE" || exit 1 -utils/schema-check/dn42-schema.py scan data/ -m "$1" +utils/schema-check/dn42-schema.py scan data/ -m "$1" || ( echo "Schema validation failed, please check above!" ; exit 1 ) + diff --git a/install-commit-hook b/install-commit-hook index be6525396..63a3d965c 100755 --- a/install-commit-hook +++ b/install-commit-hook @@ -10,12 +10,11 @@ BASE="$(realpath "$0")" BASE="$(dirname "$BASE")" cd "$BASE" || exit 1 -cat >> .git/hooks/pre-commit < .git/hooks/pre-commit </dev/null | grep -v PASS 1>/dev/null 2>&1 && { echo "Schema validation failed, please check above!" 1>&2; exit 1; } +./check-my-stuff "$1" || exit 1 + EOF chmod +x .git/hooks/pre-commit diff --git a/utils/schema-check/dn42-schema.py b/utils/schema-check/dn42-schema.py index deaf3f22d..430c92f3b 100755 --- a/utils/schema-check/dn42-schema.py +++ b/utils/schema-check/dn42-schema.py @@ -266,8 +266,10 @@ def __scan_index(idx, schemas, mntner): continue c = FileDOM(v[0]) ck = s.check_file(c, idx.keys()) - if not ck: - ok = False + if ck == "INFO" and ok != "FAIL": + ok = ck + if ck == "FAIL": + ok = ck return ok @@ -397,5 +399,10 @@ if __name__ == '__main__': elif args["command"] == "scan": import time log.notice("## Scan Started at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))) - scan_files(args["path"], args["use_mntner"]) + ck = scan_files(args["path"], args["use_mntner"]) log.notice("## Scan Completed at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))) + + if ck == "INFO": + sys.exit(2) + elif ck == "FAIL": + sys.exit(1)