diff options
Diffstat (limited to 'desiredata/src/plusminus')
-rwxr-xr-x | desiredata/src/plusminus | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/desiredata/src/plusminus b/desiredata/src/plusminus new file mode 100755 index 00000000..553f84fa --- /dev/null +++ b/desiredata/src/plusminus @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby +# plusminus, Copyright © 2004 by Mathieu Bouchard +# this program makes stats about a unified diff (diff -u) output. +# for example, run this command: cvs diff -u | ./plusminus +# NOTE: the -u option is required! (you can put it in ~/.cvsrc) + +puts "-"*64 + +$plustot=0 +$minustot=0 + +def show + printf "%20s %+5d %+5d (net %+5d)\n", $file, $plus, -$minus, $plus-$minus +end + +loop{ + line = gets + break if not line + if /^diff/.match line then + x = line.split(/\s+/) + $plustot+=$plus if $plus + $minustot+=$minus if $minus + show if $file + $file = x[-1] + $on=false + $plus=0 + $minus=0 + elsif /^\@\@/ =~ line then $on=true + elsif $on and /^\+/ =~ line then $plus+=1 + elsif $on and /^\-/ =~ line then $minus+=1 + end +} + +$plustot+=$plus if $plus +$minustot+=$minus if $minus +show if $file + +$file="total" +$plus=$plustot +$minus=$minustot +puts "-"*64 +show |