From c28c544b933cfb3ef3152be922248e9bbe89811e Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Tue, 21 Dec 2021 11:52:14 -0500 Subject: Add kelvin versioning to pre-commit hook --- Biz/Ide/pre-commit | 19 ++++++++++++++++++- Biz/Ide/version | 11 +++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 Biz/Ide/version 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 +## -- cgit v1.2.3