home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 July
/
CHIP_CD_2004-07.iso
/
software
/
nncron_hit
/
files
/
nncron189.exe
/
plugins
/
tools.spf
< prev
next >
Wrap
Text File
|
2003-09-28
|
2KB
|
104 lines
\ File: tools.spf
\ Author: Nicholas Nemtsev
\ Date: 14.07.2002
\ Description: Console tools
\ Usage: WORDS-LIKE piece-of-word
\ TASKS
\ Modified: 14.07.03
\ new words: TABS TASK-DELETE TDEL TADD
C" CRON-TOOLS" FIND NIP [IF] CRON-TOOLS [THEN]
MARKER CRON-TOOLS
: WORDS-LIKE ( -- )
BL WORD COUNT 2>R
CONTEXT @ @
BEGIN
?DUP
WHILE
DUP COUNT 2R@ SEARCH NIP NIP
IF
DUP ID. SPACE
THEN
CDR
REPEAT
2R> 2DROP
CR
;
\ cron tools
: TASKS
\ Displays list of task
CRON-LIST
BEGIN @ ?DUP WHILE
DUP CRON-NAME @ ID. SPACE DUP CRON-FILENAME @ ID. CR
REPEAT
;
: TABS
\ Displays list of crontabs
[NONAME NodeValue TAB-FILENAME @ COUNT EVAL-SUBST TYPE CR NONAME]
TAB-LIST DoList ;
: TASK-DELETE ( task --)
\ Deletes specified task. Task should exist.
\ Usage: task-name TASK-DELETE
CUR-NODE >R
@ TO CUR-NODE
['] CUR-NODE-DELETE CATCH DROP
R> TO CUR-NODE
;
: TASK-DEL get-string ['] EVALUATE CATCH ?DUP
IF ." Task not found ( " . ." )" 2DROP ELSE TASK-DELETE THEN
;
: 1stCRONTAB TAB-LIST @ TAB-FILENAME @ COUNT EVAL-SUBST ;
: TASK-ADD ( | "task name" ["crontab name"] -- )
\ Defines new task. Reads input lines up to . (dot) at beginning of line.
{ \ aztab aztask h buf -- }
get-string S>ZALLOC TO aztask
get-string ?DUP 0= IF DROP 1stCRONTAB THEN S>ZALLOC TO aztab
aztab ASCIIZ> R/W OPEN-FILE-SHARED 0=
IF
TO h
10240 ALLOCATE THROW TO buf
buf 0!
BEGIN REFILL IF SOURCE S" ." COMPARE 0<> ELSE FALSE THEN WHILE
SOURCE buf +ZPLACE LT LTL @ buf +ZPLACE
REPEAT
\ writing
h >EOF
S" #( " h WRITE-FILE DROP
aztask ASCIIZ> h WRITE-LINE DROP
buf ASCIIZ> h WRITE-FILE DROP
S" )#" h WRITE-LINE DROP
h CLOSE-FILE DROP
buf FREE DROP
1 WORD DROP
reload-crontab
ELSE DROP THEN
aztab FREE DROP
aztask FREE DROP
;
: TASK-GET ( | "task name" ["crontab name"] -- )
{ \ aztab aztask h -- }
get-string S>ZALLOC TO aztask
aztask ASCIIZ> ['] EVALUATE CATCH 0=
IF
@ CRON-FILENAME @ COUNT
get-string 2DROP
ELSE 2DROP get-string ?DUP 0= IF DROP 1stCRONTAB THEN THEN
S>ZALLOC TO aztab
aztab ASCIIZ> R/O OPEN-FILE-SHARED 0=
IF
THEN
aztab FREE DROP
aztask FREE DROP
;