diff options
author | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2000-03-06 12:19:52 +0000 |
---|---|---|
committer | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2000-03-06 12:19:52 +0000 |
commit | af4184c1f910894324ffd41e0f4cd7abaa4d8d05 (patch) | |
tree | f93fc957b4df50f6353737723a6efae6bef690e8 /lib | |
parent | 28a19f73c9cc6b219734df8fd25c921e95e537d1 (diff) |
Perl file for processing CVS output
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1415 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sbin/CVSStatus.pl | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/lib/sbin/CVSStatus.pl b/lib/sbin/CVSStatus.pl new file mode 100644 index 00000000..7b4ca9f1 --- /dev/null +++ b/lib/sbin/CVSStatus.pl @@ -0,0 +1,89 @@ +#/*@@ +# @file CVSStatus.pl +# @date Mon Mar 6 01:20:01 CET 2000 +# @author Gabrielle Allen +# @desc +# Processes output from cvs status and gives better messages +# Original version by Paul Walker +# $Header$ +# @enddesc +#@@*/ + +&writeheader(); + +open (CS, "cvs status 2>&1 |"); +$gotone = 0; + +while (<CS>) { + if (m/waiting for/) { + print; + } + if (m/Examining/) { + if ($gotone) { + $dir =~ m:^\s*(/\w*/\w*):; + $dir = $1; + if ($dir ne $dir_old) { + print "\n$dir\n";$dir_old=$dir; + } + write; + # Get differences between versions + if ($case =~ /diff/i) + { + print "\n\ncvs diff -r $rversion $thisdir/$file\n\n"; + open (DIFF, "cvs diff -r $rversion $thisdir/$file |"); + while (<DIFF>) {print;} + } + } + $gotone = 0; + $thisdir=""; + $file = ""; + $dir = ""; + $status = ""; + $version=""; + $rversion=""; + } + if (m/File: (\S+)/) {$file = $1;} + if (m/Status: (.+)\s/) { + $status = $1; + if (!($status =~ m/Up-to-date/)) { + $gotone = 1; + } + } + if (m/Examining\s*(\S+)\s*$/) {$thisdir = $1;} + if (m/Working revision:\s*(\S+)\s/) {$version = $1;} + if (m/Repository revision:\s*(\S+)\s+(\S+)/) { + $rversion = $1; $dir = $2; + } + +} +exit; + +format STDOUT = +@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<< @<<<<<<</@<<<<<<< +$file, $status, $version, $rversion +. + + +sub writeheader +{ +local ($case); +if ($case =~ "diff") +{ +print <<EOF; + +CVS Diff report + +File Status Local/Remote ver +------------------------------------------------------------------------------- +} +else +{ +print <<EOF; + +CVS Status report + +File Status Local/Remote ver +------------------------------------------------------------------------------- +EOF +} +} |