1$ ! 2$ ! Deal with requests for UUCICO 3$ ! 4$ set noon 5$ set proc/prio=4 6$ set prot=w:re/default 7$ assign nla0: sys$print ! Keep those log file coming in 8$ ! 9$ ! Define Key Parameters & commands 10$ ! 11$ UUCICO_DIR = "e$disk:[eunice.usr.lib.uucp]" 12$ UUCICO_RESUBMIT_PERIOD = "+3:00:00" 13$ UUCICO_QUEUE = "SYS$SPECIAL" 14$ uucico:==$'UUCICO_DIR'uucico uucico 15$ status = 1 16$ !drain:==$e$disk:[eunice.usr.lib.uucp]drain drain 17$ ! 18$ on error then $ goto error_mail ! If there is a problem go tell the Boss 19$ ! 20$ ! Delete JOBID file (means JOB running) 21$ delete 'UUCICO_DIR'uucico.jid;* 22$ oncethrough = 0 23$ Old_UUCICO_Command := "NEVER LIKELY TO BE IDENTICAL" 24$! 25$! Main loop. Get command file arguments and execute UUCICO. 26$! 27$ANOTHER_CMD_FILE: 28$ UUCICO_CMD_FILE = F$SEARCH(UUCICO_DIR + "uucico.dat;*") 29$ open/read/error=NO_COMMAND_FILE cmd_file 'UUCICO_DIR'uucico.dat 30$ read cmd_file UUCICO_Command /end=EMPTY_COMMAND_FILE 31$EMPTY_COMMAND_FILE: 32$ close cmd_file 33$ delete 'UUCICO_CMD_FILE' ! Delete the UUCICO command file just read 34$ goto RUN_CICO 35$! 36$NO_COMMAND_FILE: 37$ if oncethrough .eq. 1 then $ goto RESUBMIT 38$ UUCICO_Command:="-r1" ! Default command = "look for work" (Once only) 39$! 40$RUN_CICO: 41$ if Old_UUCICO_Command .eqs. UUCICO_Command then $ goto ANOTHER_CMD_FILE 42$ ! allocate dedicated lines 43$ !alloc ttd0: 44$ uucico 'UUCICO_Command' !Run UUCICO 45$ status = $status 46$ ! Clear up terminal lines 47$ !drain ttd0: 48$ oncethrough = 1 49$ Old_UUCICO_Command = UUCICO_Command 50$ goto ANOTHER_CMD_FILE 51$! 52$error_mail: 53$ set noon ! Push through regardless... 54$ count = 0 55$ status = $STATUS 56$ subject = "" 57$mail_error: 58$ subject = subject + F$LOG("SYS$NODE") 59$ subject = subject + "UUCICO error: " + F$STRING(STATUS) 60$ subject = subject + " = " 61$ subject = subject + F$MESSAGE(STATUS) 62$ subject = subject + " " + UUCICO_COMMAND 63$ dis_list = UUCICO_DIR + "Disaster.DIS" 64$ dis_list = F$PARSE(dis_list) 65$ if dis_list .eqs. "" then $ dis_list = "SYSTEM" 66$ dis_list = F$SEARCH(dis_list) 67$ if dis_list .eqs. "" then $ dis_list = "SYSTEM" 68$ if F$LOCATE(".DIS",dis_list) .lt. F$Length(dis_list) then - 69 $ dis_list = "@" + dis_list 70$ MAIL NL: "''DIS_LIST'" /Subject="''subject'" 71$ if .not. $status then $ MAIL nl: SYSTEM - 72 /subject="UUCICO error mailing error ''STATUS' / ''$status'" 73$ ! 74$RESUBMIT: 75$ if status then $ purge sys$login:uucico.log/keep=2 76$ ! Submit the job again later (Delta = defined above) 77$ assign 'UUCICO_DIR'uucico.jid sys$output 78$ submit 'UUCICO_DIR'uucico - 79 /after="''UUCICO_RESUBMIT_PERIOD'" - 80 /queue='UUCICO_QUEUE' /keep/noprint 81$ status = $status 82$ deassign sys$output 83$ ! 84$ if status then $ exit 85$ if "''count'" .eqs. "" then $ count = 0 86$ if count .gt. 3 then $ exit 87$ count = count + 1 88$ subject = "Requeue Error:" 89$ goto mail_error 90$ exit 91