]>
Commit | Line | Data |
---|---|---|
5edea21c | 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 |