From fe412e645729f49c115e02b743070b07ae2e78a8 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 9 Dec 2025 08:40:31 -0300 Subject: Feat: adds mrlog --- mrlog | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 mrlog diff --git a/mrlog b/mrlog new file mode 100755 index 0000000..a957bb5 --- /dev/null +++ b/mrlog @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# +# Builds a timeline from one of more repositories, using mr(1). +# +# Accepts git-log(1) parameters, like +# +# --since= +# --after= +# +# Examples: +# +# mrtimeline --since='1 day ago' --date=relative +# watch -n 120 "mrtimeline --since='1 week ago' --date=relative" +# + +DIRNAME="`dirname $0`" +BASENAME="`basename $0`" + +function run_mrlog { + if [ ! -e ".git" ]; then + exit 1 + fi + + local repo="`git rev-parse --show-toplevel`" + local name="`basename $repo`" + + #git log $* --format=format:"%aI REPO %h %s" | sed "s/ REPO / $name /" + #git log $* --format=format:"%aI REPO %h %s" | sed "s/ REPO / $name\t\t /" + #git log $* --format=format:"%aI REPO %<(8) %h %s" | sed "s/ REPO / $name /" + #git log $* --format=format:"%aI REPO %>(20) %h %s" | sed "s/ REPO / $name /" + #git log $* --format=format:"%aI|||REPO|||%h|||%>(100,trunc)%s" | sed "s/REPO/ $name /" + git log "$*" --format=format:"%aI|||REPO|||%h|||%s" | sed "s/REPO/ $name /" +} + +function run_mrtimeline { + #mr run $DIRNAME/mrlog $* | grep -v "^mr run:" | sort -r | less + mr run $DIRNAME/mrlog "$*" | grep -v "^mr run:" | sort -r | column -s '|||' -t -o ' ' | less +} + +# Dispatch +run_${BASENAME} "$*" -- cgit v1.2.3