#!/usr/bin/perl # loncapaverifybasepackage # This tool helps with system verification. It looks at the # RPM packages on the system. It downloads the base # RPM (LON-CAPA-base) from install.lon-capa.org (into /tmp # directory). It compares file differences and generates a # pretty HTML report. # This is an adapted shell script I wrote a while ago. I need # to perlify many of the commands. # Scott Harrison, 10/25/2000 use strict; `/bin/rm -Rf /home/httpd/html/dev`; `/bin/mkdir -m 0755 /home/httpd/html/dev`; `/usr/bin/lynx -source http://install.lon-capa.org/3.1/loncapafiles/LON-CAPA-base-3.1-1.i386.rpm > /tmp/LON-CAPA-base-3.1-1.i386.rpm`; `/bin/rpm -Vp /tmp/LON-CAPA-base-3.1-1.i386.rpm > /home/httpd/html/dev/index.txt`; `/bin/echo "

File Check: " > /home/httpd/html/dev/index.html`; `/bin/cat /etc/HOSTNAME >> /home/httpd/html/dev/index.html`; `/bin/echo "


DATE OF CHECK: " >> /home/httpd/html/dev/index.html`; `/bin/date >> /home/httpd/html/dev/index.html`; `/bin/echo "
DATE OF MOST RECENT LON-CAPA RPM: " >> /home/httpd/html/dev/index.html`; `/bin/rpm -qp --queryformat '%{BUILDTIME}' /tmp/LON-CAPA-base-3.1-1.i386.rpm | /usr/bin/perl -e '\$t=<>; chop; print scalar localtime(\$t);' >> /home/httpd/html/dev/index.html`; `/bin/echo "

Inconsistencies with most recent LON-CAPA RPM (bold indicates the way it should be):


" >> /home/httpd/html/dev/index.html`; my @verifications=`/bin/rpm -Vp /tmp/LON-CAPA-base-3.1-1.i386.rpm | grep -v '\\.\\.\\.\\.\\.\\.\\.' | cut -b13-`; my @reports=(); foreach (@verifications) { chop; my $a=$_; my $d=`cd /tmp; rm -Rf /tmp/uncpio;mkdir uncpio;cd uncpio; rpm2cpio ../LON-CAPA-base-3.1-1.i386.rpm | cpio -iumd --quiet $a;diff $a /$a 2>&1;`; $d=~s/\/\>/g; push @reports,(split(/\n/,"

$a
$d
")); `rm -Rf /tmp/uncpio`; } open (OUT,">>/home/httpd/html/dev/index.html"); foreach (@reports) { my $a=$_; $a="$a" if /^\</; print OUT "$a\n"; } close OUT; `/bin/rm -f /tmp/LON-CAPA-base-3.1-1.i386.rpm`;