diff options
author | Ben Sima <ben@bsima.me> | 2022-02-09 18:13:40 -0500 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2022-02-09 18:16:26 -0500 |
commit | f664669439c0f005e3579d1c67b4ebd9fa24de36 (patch) | |
tree | b2eadfc5ad5aab3452285da6c23e4f601fcdd334 /Biz/Ide/hooks | |
parent | f21e2920872fdf3c92dc815d51d6da032d157fea (diff) |
Move git hooks to own folder
Instead of symlinking, just set the local git config.
Diffstat (limited to 'Biz/Ide/hooks')
-rwxr-xr-x | Biz/Ide/hooks/post-checkout | 14 | ||||
-rwxr-xr-x | Biz/Ide/hooks/post-merge | 2 | ||||
-rwxr-xr-x | Biz/Ide/hooks/pre-commit | 19 | ||||
-rwxr-xr-x | Biz/Ide/hooks/pre-push | 2 |
4 files changed, 37 insertions, 0 deletions
diff --git a/Biz/Ide/hooks/post-checkout b/Biz/Ide/hooks/post-checkout new file mode 100755 index 0000000..95b35cd --- /dev/null +++ b/Biz/Ide/hooks/post-checkout @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -e +init_tags=$BIZ_ROOT/Biz/Ide/init_tags.sh +old=$1 +new=$2 +# filter out only the changed haskell files +changed=($(git diff --diff-filter=d --name-only $old $new -- '*.hs')) +if [[ ! -r tags ]] +then + $init_tags +elif [[ ${#changed[@]} -gt 0 ]] +then + $init_tags $changed +fi diff --git a/Biz/Ide/hooks/post-merge b/Biz/Ide/hooks/post-merge new file mode 100755 index 0000000..624e797 --- /dev/null +++ b/Biz/Ide/hooks/post-merge @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +exec $BIZ_ROOT/Biz/Ide/post-checkout 'HEAD@{1}' HEAD diff --git a/Biz/Ide/hooks/pre-commit b/Biz/Ide/hooks/pre-commit new file mode 100755 index 0000000..507d7e6 --- /dev/null +++ b/Biz/Ide/hooks/pre-commit @@ -0,0 +1,19 @@ +#!/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=$($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/hooks/pre-push b/Biz/Ide/hooks/pre-push new file mode 100755 index 0000000..3d00aea --- /dev/null +++ b/Biz/Ide/hooks/pre-push @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +lint **/* && bild --test **/* |