! Simple PURGE utility for old-style Fred-O/S, intended to run against
! the new-style filestores (running it against the old-style filestores
! will be a no-op).
include "Inc:FS.Imp"
owninteger n = 0
routine delete file(string (255) file)
integer x
on 3 start
printstring("Delete "); printstring(file)
printstring(" failed: "); printstring(event_message)
newline
return
finish
!! printstring("Delete "); printstring(file); newline
x = fcomm('D' << 8, file)
n = n + 1
end
routine read line(string (*)name s)
integer ch
s = ""
cycle
read symbol(ch)
exit if ch = NL
s = s . to string(ch)
repeat
end
begin
string (255) directory, file
on 3, 9 start
if event_event = 3 start
printstring("Purge ")
if directory = "" then printstring("current default") c
else printstring(directory)
printstring(" fails: "); printstring(event_message)
newline
stop
finish
write(n, 0); printstring(" file")
print symbol('s') if n # 1
printstring(" purged"); newline
stop
finish
directory = CLI param
if directory = "" start
open input(3, "."); select input(3)
else
directory = directory . ":" c
unless charno(directory, length(directory)) = ':'
open input(3, directory); select input(3)
finish
cycle
read line(file)
if file -> file . (":-") start
!! printstring("Versions of "); printstring(file)
!! printstring(" exist"); newline
delete file(directory . file . ":-1")
finish
repeat
end of program