summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sbin/CVSStatus.pl45
1 files changed, 26 insertions, 19 deletions
diff --git a/lib/sbin/CVSStatus.pl b/lib/sbin/CVSStatus.pl
index 7b4ca9f1..d5fbfdad 100644
--- a/lib/sbin/CVSStatus.pl
+++ b/lib/sbin/CVSStatus.pl
@@ -11,33 +11,37 @@
&writeheader();
+$full = 0;
+
open (CS, "cvs status 2>&1 |");
$gotone = 0;
while (<CS>) {
- if (m/waiting for/) {
- print;
- }
- if (m/Examining/) {
+
+ if (m/============/ || m/Examining/) {
if ($gotone) {
- $dir =~ m:^\s*(/\w*/\w*):;
- $dir = $1;
- if ($dir ne $dir_old) {
- print "\n$dir\n";$dir_old=$dir;
- }
- write;
+ $module =~ m:^\s*(/\w*/\w*):;
+ $module = $1;
+ if ($module ne $module_old) {
+ print "\nRepository: $module\n";$module_old=$module;
+ }
# 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 |");
+ print "\n\n*******************************************************************\n\ncvs diff -r $rversion $dir/$file\n\n";
+ write;
+ print "\n\n";
+ open (DIFF, "cvs diff -r $rversion $dir/$file |");
while (<DIFF>) {print;}
}
+ else
+ {
+ write;
+ }
}
$gotone = 0;
- $thisdir="";
+ $module="";
$file = "";
- $dir = "";
$status = "";
$version="";
$rversion="";
@@ -49,12 +53,12 @@ while (<CS>) {
$gotone = 1;
}
}
- if (m/Examining\s*(\S+)\s*$/) {$thisdir = $1;}
+ if (m/Examining\s*(\S+)\s*$/) {$dir = $1;}
if (m/Working revision:\s*(\S+)\s/) {$version = $1;}
if (m/Repository revision:\s*(\S+)\s+(\S+)/) {
- $rversion = $1; $dir = $2;
+ $rversion = $1; $module = $2;
}
-
+
}
exit;
@@ -66,8 +70,10 @@ $file, $status, $version, $rversion
sub writeheader
{
-local ($case);
-if ($case =~ "diff")
+my ($case) = @_;
+
+print "$case\n";
+if ($case =~ /diff/)
{
print <<EOF;
@@ -75,6 +81,7 @@ CVS Diff report
File Status Local/Remote ver
-------------------------------------------------------------------------------
+EOF
}
else
{