Break out deltree in its' own command procedure.

This commit is contained in:
Richard Levitte 2006-02-26 10:44:57 +00:00
parent f71165b556
commit f53ac639c6
2 changed files with 36 additions and 31 deletions

View File

@ -11,7 +11,7 @@ $
$ set noon $ set noon
$ if f$search("demoCA.dir") .nes. "" $ if f$search("demoCA.dir") .nes. ""
$ then $ then
$ call deltree [.demoCA]*.* $ @[-.utils]deltree [.demoCA]*.*
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
$ delete demoCA.dir;* $ delete demoCA.dir;*
$ endif $ endif
@ -38,7 +38,7 @@ $ @[-.apps]CA.com -verify newcert.pem
$ if $severity .ne. 1 then exit 3 $ if $severity .ne. 1 then exit 3
$ $
$ set noon $ set noon
$ call deltree [.demoCA]*.* $ @[-.utils]deltree [.demoCA]*.*
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
$ delete demoCA.dir;* $ delete demoCA.dir;*
$ if f$search("newcert.pem") .nes. "" then delete newcert.pem;* $ if f$search("newcert.pem") .nes. "" then delete newcert.pem;*
@ -47,32 +47,3 @@ $ set on
$! #usage: CA -newcert|-newreq|-newca|-sign|-verify $! #usage: CA -newcert|-newreq|-newca|-sign|-verify
$ $
$ exit $ exit
$
$ deltree: subroutine ! P1 is a name of a directory
$ on control_y then goto dt_STOP
$ on warning then goto dt_exit
$ _dt_def = f$trnlnm("SYS$DISK")+f$directory()
$ if f$parse(p1) .eqs. "" then exit
$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")'
$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE")
$ _fp = f$parse(".DIR",p1)
$ dt_loop:
$ _f = f$search(_fp)
$ if _f .eqs. "" then goto dt_loopend
$ call deltree [.'f$parse(_f,,,"NAME")']*.*
$ goto dt_loop
$ dt_loopend:
$ _fp = f$parse(p1,".;*")
$ if f$search(_fp) .eqs. "" then goto dt_exit
$ set noon
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp'
$ set on
$ delete/nolog '_fp'
$ dt_exit:
$ set default '_dt_def'
$ exit
$ dt_STOP:
$ set default '_dt_def'
$ stop/id=""
$ exit
$ endsubroutine

34
util/deltree.com Normal file
View File

@ -0,0 +1,34 @@
$! DELTREE.COM
$
$ call deltree 'p1'
$ exit $status
$
$ deltree: subroutine ! P1 is a name of a directory
$ on control_y then goto dt_STOP
$ on warning then goto dt_exit
$ _dt_def = f$trnlnm("SYS$DISK")+f$directory()
$ if f$parse(p1) .eqs. "" then exit
$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")'
$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE")
$ _fp = f$parse(".DIR",p1)
$ dt_loop:
$ _f = f$search(_fp)
$ if _f .eqs. "" then goto dt_loopend
$ call deltree [.'f$parse(_f,,,"NAME")']*.*
$ goto dt_loop
$ dt_loopend:
$ _fp = f$parse(p1,".;*")
$ if f$search(_fp) .eqs. "" then goto dt_exit
$ set noon
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp'
$ set on
$ delete/nolog '_fp'
$ dt_exit:
$ set default '_dt_def'
$ goto dt_end
$ dt_STOP:
$ set default '_dt_def'
$ stop/id=""
$ exit
$ dt_end:
$ endsubroutine