diff options
author | Ben Sima <ben@bsima.me> | 2023-10-10 13:15:59 -0400 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2023-10-10 13:15:59 -0400 |
commit | 904de577261e7024373e7a42fd763184764238f9 (patch) | |
tree | 563e4968eab568466ae3e7a1c747dd24a77986c0 /Biz/Ide/hooks/pre-commit.bash | |
parent | 6107f8178e26ada67e5d5ec60501e24528b3db56 (diff) |
Don't swallow namespace-parsing errors
Previously, if there was a problem with the inputs and bild failed to
determine the namespace, 'fromPath' would return 'Nothing' and then
'catMaybes' would drop the error-causing input altogether. In the one
time that I had a bad input, this made debugging incredibly difficult.
It's always a bad idea to swallow errors silently, so instead lets just
kill the program if we have bad inputs.
Diffstat (limited to 'Biz/Ide/hooks/pre-commit.bash')
-rwxr-xr-x | Biz/Ide/hooks/pre-commit.bash | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Biz/Ide/hooks/pre-commit.bash b/Biz/Ide/hooks/pre-commit.bash new file mode 100755 index 0000000..2b4575c --- /dev/null +++ b/Biz/Ide/hooks/pre-commit.bash @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# +# - prevent frozen code from being checked in +# - guard against lint errors +## + set -e + changed=($(git diff-index --cached --name-only HEAD)) + for ns in ${changed[@]} + do + version=$(${CODEROOT:?}/Biz/Ide/version $ns) + if (( $version == -1 )); then + echo "info: version: $ns: deleted" + elif (( $version < 1 )); then + echo "fail: version: $ns: $version" + exit 1 + else + echo "info: version: $ns: $version" + fi + done + lint "${changed[@]}" +## |