From 4d84d14ac1aa13958eaa2971b03f7f929a519105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 8 Feb 2008 13:00:32 +0000 Subject: reorganized svn path=/trunk/; revision=9400 --- desiredata/src/plusminus | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 desiredata/src/plusminus (limited to 'desiredata/src/plusminus') 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 -- cgit v1.2.1