#!/bin/sh
: ; exec klone $0 "$@"
; The above line finds the klone executable in the $PATH
;; diskchange: wait for floppy to be changed
;; mdir ==> return failure (and nothing in stdout) if no disk
(setq args (getopts "C [options] [drive]
drive can be A or B"
("-m" 1 message "text to be printed when prompting for disk")
))
(if (match "[bB]" (get args 0 ""))
(setq disk-name "b:")
(setq disk-name "a:")
)
(setq mdir (list "mdir" disk-name))
(if (not message) (setq message ""))
(print-format () "\x07*** Go change floppy disk on %0! (%1) waiting...\n"
*hostname* message)
(system (+ "rsh capa \"echo \\\"\x0d\x07 *** CHANGE DISK ON "
*hostname*
" (" message ")*** `date`\\\">/dev/ttya\""
))
;; first get disk contents
(wait (system mdir :output 'fd :error 'err))
(setq original-disk-contents (coerce fd String))
(setq disk-contents original-disk-contents)
;; now wait for this to change
(while (= disk-contents original-disk-contents)
(wait (system '("sleep" "5"))) ; sleep 5 seconds
(wait (system mdir :output 'fd :error 'err))
(setq disk-contents (coerce fd String))
(if (= "" disk-contents)
(setq disk-contents original-disk-contents)
)
)
(system (+ "rsh capa \"echo \\\"\x0d DISK CHANGED ON "
*hostname*
" ********* `date`\\\">/dev/ttya\""
))
syntax highlighted by Code2HTML, v. 0.9.1