]> andersk Git - moira.git/blobdiff - gen/letter.sh
ifdef on GDSS (for sis)
[moira.git] / gen / letter.sh
index e6e5e690d8c4d8f6bd03b8b8741f92272c89e480..ca669ca7bf144ec7c741ea8c74b6f2ba831b400d 100644 (file)
@@ -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=nil
-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 = <OUT>;
+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;
This page took 0.045781 seconds and 4 git commands to generate.