]> jfr.im git - hooks.git/blob - main/update
init
[hooks.git] / main / update
1 #!/bin/sh
2
3 reponame="$(basename "$(readlink -f .)")"
4
5 FORMAT="%C(auto)%h by %an (%ah: %s) sig: %G? %GS 0x%GK https://jfr.im/git/$reponame/commitdiff/%h"
6 H2I="https://h2i:ef199c443ca3f1f49709dbe79c3758273658fb7cfbb2ff88ab97ef9aedd6bb30@chat.2948.ca/h2i/null"
7
8 ref="$1"
9 old="$2"
10 new="$3"
11
12 set -x
13 if [ "$old" = "0000000000000000000000000000000000000000" ]; then # new branch
14 commits="created with $(git describe --always "$new")"
15 elif [ "$new" = "0000000000000000000000000000000000000000" ]; then # deleted branch
16 commits="deleted from $(git describe --always "$old")"
17 elif [ "$old" = "$(git merge-base "$old" "$new")" ]; then # fast-forward update
18 commits="updated from $(git describe --always "$old") -> $(git describe --always "$new")"
19 elif [ "$new" = "$(git merge-base "$old" "$new")" ]; then # rollback
20 commits="!! rolled back to $(git describe --always "$new") erasing history through $(git describe --always "$old")"
21 else # commit --amend, rebase, or similar
22 commits="!! rewrote history from $(git describe --always "$(git merge-base "$old" "$new")") -> $(git describe --always "$new") erasing history through $(git describe --always "$old")"
23 fi
24 set +x
25
26 curl -sS -d "[$reponame] $ref $commits" "$H2I" >/dev/null
27
28 if [ "$old" = "0000000000000000000000000000000000000000" ]; then
29 git show --no-show-signature --no-patch --pretty="tformat:$FORMAT" "$new"
30 else
31 git log --no-show-signature --pretty="tformat:$FORMAT" "$old".."$new"
32 fi | while read line; do
33 curl -sS -d "$line" "$H2I" >/dev/null
34 done