From b5ee7d5a2ebd1e9b009a35694935c82cce9303e0 Mon Sep 17 00:00:00 2001 From: Tim Bishop Date: Tue, 5 Jun 2001 16:19:00 +0000 Subject: [PATCH] Now been "updated" to support some more funky features :) Firstly the output is grouped by module, making it clearer to see what commits belong where. Secondly, query strings allow you to specify the period, rather than just the current day that the old one did. This are: Current Day: period=today Current Week: period=thisweek Last n Days: period=days&days=n There are also subtle location changes to suit the location on the new webserver rather than raptor. --- cgi-bin/cvslog.cgi | 81 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/cgi-bin/cvslog.cgi b/cgi-bin/cvslog.cgi index bb2dc3f..43a98c9 100755 --- a/cgi-bin/cvslog.cgi +++ b/cgi-bin/cvslog.cgi @@ -1,15 +1,38 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w + +use CGI; +$query=new CGI; +my($period)=$query->param('period'); +$period = "today" unless defined $period; + +my($firstdate); +if($period eq "days") { + my($days)=$query->param('days'); + $days = 1 unless defined $days; + if ($days < 1) {$days = 1}; + $heading = "i-scream CVS commits in the past $days day(s)"; + $days--; + $firstdate = `date --date \"$days days ago\" \"+%Y/%m/%d\"`; +} +elsif($period eq "thisweek") { + $firstdate = "last Sunday"; + $heading = "i-scream CVS commits this week"; +} +else { + # default to "today only" + $firstdate = `/bin/date \"+%Y/%m/%d\"`; + $heading = "Today's i-scream CVS commits"; +} print "Content-type: text/html\n\n"; -my($today) = `date \"+%Y/%m/%d\"`; -my($cvs) = "/home/cut/tdb1/bin/cvs"; -my($cvs2clpath) = "/home/cut/tdb1/bin/cvs2cl"; -my($cvsroot) = "/usr/local/proj/co600_10/cvs"; -my($cvs2clargs) = "--stdout -r -b -t -w -U $cvsroot/CVSROOT/users -l \"-d'\>$today'\" -g \"-d$cvsroot\" -g \"-Q\""; -my($cmd) = "cd /home/cut/tdb1/cvsscripttemp && $cvs -d $cvsroot -Q update -d && $cvs2clpath $cvs2clargs *"; - -my(@lines) = `$cmd 2>&1`; +my($cvs) = "/usr/bin/cvs"; +my($cvs2clpath) = "/home/sites/www.i-scream.org.uk/bin/cvs2cl.pl"; +my($cvsroot) = "/cvs/i-scream"; +#my($cvs2clargs) = "--stdout -r -b -t -w -U $cvsroot/CVSROOT/users -l \"-d'\>$today'\" -g \"-d$cvsroot\" -g \"-Q\""; +my($cvs2clargs) = "--stdout -r -b -t -w -U $cvsroot/CVSROOT/users -l \"-d'\>$firstdate'\" -g \"-d$cvsroot\" -g \"-Q\""; +my($updatecmd) = "cd /home/sites/www.i-scream.org.uk/cvsscripttemp && $cvs -d $cvsroot -Q update -d"; +my($logcmd) = "cd /home/sites/www.i-scream.org.uk/cvsscripttemp && $cvs2clpath $cvs2clargs"; print <<"END"; @@ -18,31 +41,42 @@ print <<"END"; The i-scream Project Daily Commit Log - - - - + -

Today's i-scream CVS commits

- -Browse i-scream CVS repository +

$heading

-
 END
 
-foreach my $line (@lines) {
-    print HTML_encode($line);
+print `$updatecmd`;
+
+my $modulelist = `ls $cvsroot`;
+my(@modules) = split (/\s+/, $modulelist);
+
+foreach my $module (@modules) {
+
+    print "

$module module

\n"; + print ""; + print "Browse i-scream "$module" cvs module\n"; + print "
\n";
+
+    my(@lines) = `$logcmd $module 2>&1`;
+    if(@lines == 0) {
+        print "There have been no commits in this module during this period.";
+    }
+    else {
+        foreach my $line (@lines) {
+            print HTML_encode($line);
+        }
+    }
+
+    print "

\n\n"; } print <<"END"; -
@@ -64,4 +98,3 @@ sub HTML_encode ($){ $encoded =~ s/>/>/g; return $encoded; } - -- 2.44.0