summaryrefslogtreecommitdiff
path: root/Biz/Ide
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2021-12-21 11:52:14 -0500
committerBen Sima <ben@bsima.me>2021-12-21 11:58:21 -0500
commitc28c544b933cfb3ef3152be922248e9bbe89811e (patch)
treee74ed2afe6980e983c5112f0c6088b9774089da4 /Biz/Ide
parent2b4e0164beaf697332cebce9c9a088be1978ffc5 (diff)
Add kelvin versioning to pre-commit hook
Diffstat (limited to 'Biz/Ide')
-rwxr-xr-xBiz/Ide/pre-commit19
-rwxr-xr-xBiz/Ide/version11
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
+##