xref: /original-bsd/usr.bin/uucp/vms/uucico.com (revision cf2124ff)
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