X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/dd03c3006481c8fd63f4c7f886e1c93e909be435..dcfa270ac1d2f55eb793c4da4bbd555903a88b09:/gen/letter.sh diff --git a/gen/letter.sh b/gen/letter.sh index b3e3964c..ca669ca7 100644 --- a/gen/letter.sh +++ b/gen/letter.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/moira/bin/perl # $Header$ # This script prints the letters confirming registration for the extra # kerberos principal. @@ -7,29 +7,61 @@ # day's job printed. If so, the cached copy is deleted. Otherwise, # today's is appended to yesterday's and we continue working with that. -PATH=/bin:/bin/athena:/usr/ucb:/usr/bin/athena:/usr/athena; export PATH -printer=linus -newfile=/tmp/letter.out -savefile=/u1/letter.save - -# These are not normally local, so may need to point somewhere else -lpquota=lpquota -lpr=lpr -colrm=colrm - -last=`$lpquota -l | tail -2` -if [ "`echo $last | $colrm 1 4 | $colrm 7`" = \ - "`ls -l $savefile | $colrm 1 32 | $colrm 7`" ]; then - mv $newfile $savefile -else - if [ -s $savefile ]; then - cat $newfile >> $savefile - echo "Reg_extra letter printing error" | /bin/mail dbadmin - else - mv $newfile $savefile - fi -fi - -$lpr -P$printer -h $savefile - -exit 0 +$printer = "nil"; +$newfile = "/tmp/letter.out"; +$savefile = "/u1/letter.save"; +$holdfile = "/u1/letter.hold"; +$logfile = "/u1/letter.log"; + +open(LOG, ">>" . $logfile); + +print LOG "\nRunning " . `date`; + +$printed =`/usr/athena/bin/lpquota -l | tail -2`; +@printed = split(/\s+/, $printed); + +print LOG "\nlast printed " . $printed; + +$filed = `ls -l $savefile`; +@filed = split(/\s+/, $filed); + +print LOG "\nfile touched " . $filed; + +if ($printed[1] eq $filed[4] && $printed[2] eq $filed[5]) { + system("mv $newfile $savefile"); + print LOG "\nall OK"; +} else { + if ( -s $savefile) { + if ( ! -f $holdfile) { + open(MAIL, "|/bin/mail dbadmin thorne"); + print MAIL "To: dbadmin, thorne\n"; + print MAIL "Subject: reg_extra printing error\n"; + print MAIL "Reg_extra letters failed to print yesterday\n"; + print MAIL $filed; + print MAIL $printed; + close(MAIL); + print LOG "\nmail sent"; + } + system("cat $newfile >> $savefile"); + } else { + system("mv $newfile $savefile"); + } +} + +unlink($holdfile); + +print LOG "\nprinting..."; + +open(OUT, "/usr/ucb/lpr -P$printer -h $savefile|"); +$msg = ; +close(OUT); + +print LOG "done\n"; + +if ($msg eq "Printer queue is disabled.\n") { + open(FOO, $holdfile); + close(FOO); + print LOG "got expected queue down error\n"; +} + +exit 0;