diff options
Diffstat (limited to 'git/git-s')
-rwxr-xr-x | git/git-s | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/git/git-s b/git/git-s new file mode 100755 index 0000000..faf55ff --- /dev/null +++ b/git/git-s @@ -0,0 +1,20 @@ +#!/bin/sh + +# git-s -- selection-friendly git-status + +git status -s | perl -ne ' + push @{$x{$1}}, $2 if /^(.). (.*)/; + push @{$y{$1}}, $2 if /^.(.) (.*)/; + END { + delete $x{"?"}; delete $x{" "}; delete $y{" "}; + for (["index" => \%x], ["tree" => \%y]) { + ($n, $h) = @$_; + print "$n:" if values %$h; + for (sort keys %$h) { + print " $_ "; + print " $_" for @{$h->{$_}}; + print "\n"; + } + } + } +' |