5 newSlot("isRunning", false
)
6 newSlot("returnCode", nil
)
10 newSlot("arguments", nil
)
11 newSlot("environment", Map clone)
14 self arguments
:= List clone
15 self environment
:= environment
clone
19 err
:= self asyncRun(command
, arguments
, environment
)
20 if(err
== -1, Exception raise("unable to run command"))
22 // replace this with something to watch the file streams?
24 while(isRunning
== true
and (s
:= self status
) > 255,
25 if(aBlock
, aBlock call
)
28 if(aBlock
, aBlock call
)
36 run(Block clone setMessage(call
argAt(0)) setScope(self))
40 newSysCall
:= self clone
41 parts
:= s
splitNoEmpties(" ")
42 newSysCall
setCommand(parts removeFirst
)
43 newSysCall
setArguments(parts
)