summaryrefslogtreecommitdiff
path: root/Biz/Ide/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'Biz/Ide/hooks')
-rwxr-xr-xBiz/Ide/hooks/pre-push.bash69
1 files changed, 33 insertions, 36 deletions
diff --git a/Biz/Ide/hooks/pre-push.bash b/Biz/Ide/hooks/pre-push.bash
index 0c313cb..5abd3ee 100755
--- a/Biz/Ide/hooks/pre-push.bash
+++ b/Biz/Ide/hooks/pre-push.bash
@@ -1,8 +1,11 @@
#!/usr/bin/env bash
#
-# a simple ci that saves its results in a git note, formatted according to
+# A simple ci that saves its results in a git note, formatted according to
# RFC-2822, more or less.
#
+# To run this manually, exec the script. It will expect to read a line of
+# inputs, you can just enter 'HEAD' and it will
+#
##
set -uo pipefail
[[ -n $(git status -s) ]] && { echo fail: dirty worktree; exit 1; }
@@ -11,48 +14,42 @@
user=$(git config --get user.name)
mail=$(git config --get user.email)
##
- while read local_ref local_sha remote_ref remote_sha
- do
- if [[ $local_ref =~ notes ]]; then
- exit 0
- fi
- commit=$(git notes --ref=ci show $local_ref || true)
- if [[ -n "$commit" ]]
+ commit=$(git notes --ref=ci show HEAD || true)
+ if [[ -n "$commit" ]]
+ then
+ lint_ok=$()
+ if grep -q "Lint-is: good" <<< $commit
then
- lint_ok=$()
- if grep -q "Lint-is: good" <<< $commit
- then
- exit 0
- fi
- if grep -q "Test-is: good" <<< $commit
- then
- exit 0
- fi
- fi
- ##
- if lint "${CODEROOT:?}"/**/*
- then
- lint_result="good"
- else
- lint_result="fail"
- exit 1
+ exit 0
fi
- ##
- if bild --test "${CODEROOT:?}"/**/*
+ if grep -q "Test-is: good" <<< $commit
then
- test_result="good"
- else
- test_result="fail"
- exit 1
+ exit 0
fi
- ##
- read -r -d '' note <<EOF
+ fi
+##
+ if lint "${CODEROOT:?}"/**/*
+ then
+ lint_result="good"
+ else
+ lint_result="fail"
+ exit 1
+ fi
+##
+ if bild ${BILD_ARGS:-""} --test "${CODEROOT:?}"/**/*
+ then
+ test_result="good"
+ else
+ test_result="fail"
+ exit 1
+ fi
+##
+ read -r -d '' note <<EOF
Lint-is: $lint_result
Test-is: $test_result
Test-by: $user <$mail>
Test-at: $at
EOF
- ##
- git notes --ref=ci append -m "$note"
- done
+##
+ git notes --ref=ci append -m "$note"
##