summaryrefslogtreecommitdiffstats
path: root/tv/4lib/git.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tv/4lib/git.nix')
-rw-r--r--tv/4lib/git.nix28
1 files changed, 24 insertions, 4 deletions
diff --git a/tv/4lib/git.nix b/tv/4lib/git.nix
index 2b25debdc..748b77269 100644
--- a/tv/4lib/git.nix
+++ b/tv/4lib/git.nix
@@ -114,6 +114,18 @@ let
gnused
])}
+ green() { printf '\x0303,99%s\x0F' "$1"; }
+ red() { printf '\x0304,99%s\x0F' "$1"; }
+ orange() { printf '\x0307,99%s\x0F' "$1"; }
+ pink() { printf '\x0313,99%s\x0F' "$1"; }
+ gray() { printf '\x0314,99%s\x0F' "$1"; }
+
+ unset message
+ add_message() {
+ message="''${message+$message
+ }$*"
+ }
+
nick=${escapeShellArg nick}
channel=${escapeShellArg channel}
server=${escapeShellArg server}
@@ -124,7 +136,6 @@ let
empty=0000000000000000000000000000000000000000
- unset message
while read oldrev newrev ref; do
if [ $oldrev = $empty ]; then
@@ -157,14 +168,23 @@ let
link="$cgit_endpoint/$GIT_SSH_REPO/ ($h)"
;;
fast-forward|non-fast-forward)
- #git diff --stat $id..$id2
link="$cgit_endpoint/$GIT_SSH_REPO/diff/?h=$h&id=$id&id2=$id2"
;;
esac
#$host $GIT_SSH_REPO $ref $link
- message="''${message+$message
- }$GIT_SSH_USER $receive_mode $link"
+ add_message $(pink push) $link $(gray "($receive_mode)")
+
+ add_message "$(
+ git log \
+ --format="$(orange %h) %s $(gray '(%ar)')" \
+ --reverse \
+ $id2..$id
+
+ git diff --stat $id2..$id \
+ | sed '$!s/\(+*\)\(-*\)$/'$(green '\1')$(red '\2')'/'
+ )"
+
done
if test -n "''${message-}"; then