File:  [LON-CAPA] / loncom / build / rpmparse.pl
Revision 1.4: download - view: text, annotated - select for diffs
Tue Apr 3 13:33:22 2001 UTC (23 years, 2 months ago) by harris41
Branches: MAIN
CVS tags: HEAD
it works -Scott

    1: #!/usr/bin/perl
    2: 
    3: my ($standard,$current)=@ARGV;
    4: 
    5: $standard=~s/[^\/\w\.]//g;
    6: $current=~s/[^\/\w\.]//g;
    7: my %svhash;
    8: my %sbhash;
    9: 
   10: my @oldrpms;
   11: my @badversionrpms;
   12: my @newrpms;
   13: my @externalrpms;
   14: 
   15: open IN, "<$standard";
   16: while(<IN>) {
   17:     chop;
   18:     my ($name,$version,$buildtime)=split(/\s+/);
   19:     $svhash{$name}=$version;
   20:     $sbhash{$name}=$buildtime;
   21: }
   22: close IN;
   23: 
   24: open IN, "<$current";
   25: while(<IN>) {
   26:     chop;
   27:     my ($name,$version,$buildtime)=split(/\s+/);
   28:     if ($svhash{$name}) {
   29: 	unless ($svhash{$name} eq $version) {
   30: 	    push @badversionrpms,"$name is version $version, should be $svhash{$name}\n";
   31: 	}
   32: 	if ($sbhash{$name}<$buildtime) {
   33: 	    push @newrpms,"$name was built ".localtime($buildtime)." when the expected build time was ".localtime($sbhash{$name})."\n";
   34: 	}
   35: 	if ($sbhash{$name}>$buildtime) {
   36: 	    push @newrpms,"$name was built ".localtime($sbhash{$name})." when the expected build time was ".localtime($buildtime)."\n";
   37: 	}
   38:     }
   39:     else {
   40: 	push @externalrpms,"$name (built ".localtime($buildtime).") is an RPM not expected to ever be on a LON-CAPA system\n";
   41:     }
   42: }
   43: close IN;
   44: 
   45: my $date=`date`; chop $date;
   46: my $hostname=`hostname`; chop $hostname;
   47: print <<END;
   48: <HTML>
   49: <HEAD>
   50: <TITLE>LON-CAPA Software RPM Status Page</TITLE>
   51: </HEAD>
   52: <BODY>
   53: <FONT SIZE=+2>LON-CAPA Software RPM Status Page (done on $date for $hostname)</FONT>
   54: <BR>Michigan State University
   55: <BR>Learning Online with CAPA
   56: <BR>Contact korte\@lon-capa.org
   57: <UL>
   58: <LI>About this file</LI>
   59: <LI>Bad RPM Versions</LI>
   60: <LI>Out-of-date RPMS</LI>
   61: <LI>Newer than expected RPMS</LI>
   62: <LI>RPMS external to LON-CAPA</LI>
   63: </UL>
   64: <FONT SIZE=+2>About this file</FONT>
   65: <P>
   66: This file is generated dynamically by <tt>make rpmstatuspost</tt>
   67: when this command is entered in the CVS:loncom/build directory.
   68: </P>
   69: END
   70:     print <<END;
   71: <FONT SIZE=+2>Bad RPM Versions</FONT>
   72: <PRE>
   73: END
   74: foreach my $rpminfo (@badversionrpms) {
   75:     print $rpminfo;
   76: }
   77: print <<END;
   78: </PRE>
   79: END
   80: print <<END;
   81: <FONT SIZE=+2>Out-of-date RPMS</FONT>
   82: <PRE>
   83: END
   84: foreach my $rpminfo (@oldrpms) {
   85:     print $rpminfo;
   86: }
   87: print <<END;
   88: </PRE>
   89: END
   90: print <<END;
   91: <FONT SIZE=+2>Newer than expected RPMS</FONT>
   92: <PRE>
   93: END
   94: foreach my $rpminfo (@newrpms) {
   95:     print $rpminfo;
   96: }
   97: print <<END;
   98: </PRE>
   99: END
  100: print <<END;
  101: <FONT SIZE=+2>RPMS external to LON-CAPA</FONT>
  102: <PRE>
  103: END
  104: foreach my $rpminfo (@externalrpms) {
  105:     print $rpminfo;
  106: }
  107: print <<END;
  108: </PRE>
  109: END

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>