From 301e03b46ce35589dbd2b7985d6ae8bef0dca64a Mon Sep 17 00:00:00 2001 From: John Ankarstrom Date: Sat, 3 Jul 2021 21:57:06 +0200 Subject: Add 'git-st' utility --- git-st | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 git-st diff --git a/git-st b/git-st new file mode 100755 index 0000000..8edae3f --- /dev/null +++ b/git-st @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +# git-st -- show git status (but handle binary files correctly) + +open $p, '-|', 'git', '-c', 'color.status=always', 'status', @ARGV + or die "$!\n"; +chomp($g = `git rev-parse --show-toplevel`); + +while (<$p>) { + if (/^Changes not staged for commit:$/ .. /^$/) { + if (/modified:\s+(.*\.pdf)/) { + $f = "$ENV{PWD}/$1"; + $f =~ s,^\Q$g\E/?,,; + $f =~ s/'/'"'"'/g; + `git-bdiff '$f'`; + if ($?) { + $mbuf .= $_; + $mod = 1; + } + } else { + $mod = 1 if not $mod and /[^t]:\s+/; + $mbuf .= $_; + } + $buf .= $mbuf if /^$/ and $mod; + } else { + $buf .= $_; + } +} + +close $p; +print $buf; -- cgit v1.2.3