diff options
author | Ben Sima <ben@bsima.me> | 2021-12-21 11:52:14 -0500 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2021-12-21 11:58:21 -0500 |
commit | c28c544b933cfb3ef3152be922248e9bbe89811e (patch) | |
tree | e74ed2afe6980e983c5112f0c6088b9774089da4 /Biz/Ide | |
parent | 2b4e0164beaf697332cebce9c9a088be1978ffc5 (diff) |
Add kelvin versioning to pre-commit hook
Diffstat (limited to 'Biz/Ide')
-rwxr-xr-x | Biz/Ide/pre-commit | 19 | ||||
-rwxr-xr-x | Biz/Ide/version | 11 |
2 files changed, 29 insertions, 1 deletions
diff --git a/Biz/Ide/pre-commit b/Biz/Ide/pre-commit index 8b17092..507d7e6 100755 --- a/Biz/Ide/pre-commit +++ b/Biz/Ide/pre-commit @@ -1,2 +1,19 @@ #!/usr/bin/env bash -exec $BIZ_ROOT/Biz/Ide/lint **/* +# +# - 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=$($BIZ_ROOT/Biz/Ide/version $ns) + if (( $version < 1 )); then + echo "fail: version: $ns: $version" + exit 1 + else + echo "info: version: $ns: $version" + fi + done + $BIZ_ROOT/Biz/Ide/lint **/* +## diff --git a/Biz/Ide/version b/Biz/Ide/version new file mode 100755 index 0000000..3a02b95 --- /dev/null +++ b/Biz/Ide/version @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# +# simple implementation of kelvin versioning +## + ns=$1 + commits=$(git log --oneline --follow $ns | wc -l) + # gold melts at 1337 kelvin, so we start with this + # bc we are forging gold here + version=$(bc -l <<< "1337 - $commits") + echo $version +## |