Executor Built-ins ¶
Executor Built-ins execute any process available via the command line. The execute
function sends a command, which is returned as an instance of a process object. Additional Built-in functions examine the status of the process running the command.
Example
1 2 3 4 5 6 | process := Executor.execute("ls dir") if process.waitFor(20000) then println("Output: " + process.output("UTF-8")) println("Error: " + process.error("UTF-8")) println("Exit value:" + process.exitValue()) end |
Create Executor Process ¶
To use Executor Built-ins, a process must first be started.
Syntax
1 | <process Process> := Executor.execute(<cmd String>) |
Returns
The Executor process.
Parameter
- cmd - The command being sent
- Anything that can be invoked from the Terminal can be invoked by the
execute
function
- Anything that can be invoked from the Terminal can be invoked by the
Example
1 | process := Executor.execute("ls dir") |
Executor Built-ins Functions ¶
Wait For ¶
Waits until the process has terminated or the specified waiting time elapses.
Syntax
1 | <isExitedInTime Boolean> := process.waitFor(<timeoutMilliseconds Number>) |
Returns
true
if the process has already terminated, false
otherwise.
Parameter
- timeoutMilliseconds - The maximum time to wait in milliseconds
Example
1 | isExitedInTime := process.waitFor(20000) |
Output ¶
Returns the normal output of the process.
Syntax
1 | <output String> := process.output(<charset String>) |
Returns
The process' output.
Parameter
- charset (Optional) - The character set for reading the output
- Default is set to
UTF-8
- Default is set to
Example
1 | processoutput := process.output("UTF-8") |
Note: This function does not wait for process termination.
Error ¶
Returns the process' error output.
Syntax
1 | <error String> := process.error(<charset String>) |
Returns
The error output.
Parameter
- charset - the character set for reading the error output
- Default is set to
UTF-8
- Default is set to
Example
1 | processerror := process.error("UTF-8") |
Note: This function does not wait for process termination.
Input ¶
Writes to the process. An error will occur if the process is already terminated when this function is executed.
Syntax
1 | <processInput String> := process.input(<input String>) |
Returns
The process input.
Parameter
- input - The string sent to the process
Example
1 | newinput := process.input("abc") |
Is Alive ¶
Checks if the process has been terminated or not.
Syntax
1 | <result Boolean> := process.isAlive() |
Returns
false
if the process has terminated, true
otherwise.
Example
1 2 3 | if process.isAlive() then println("it's alive!") end |
Exit Value ¶
Returns the process' exit value.
Syntax
1 | <result Number> := process.exitValue() |
Returns
The exit value's number. null
if the process has not terminated.
Example
1 2 3 4 5 6 7 | echoProcess := Executor.execute("echo abc") println("OUT:" + echoProcess.output()) println("ExitValue:" + sleepProcess.exitValue()) sleepProcess := Executor.execute("sleep 10") println("WAIT: " + sleepProcess.waitFor(3000)) println("ExitValue:" + sleepProcess.exitValue()) |
Kill ¶
Terminates a running process.
Syntax
1 | process.kill() |
Example
1 2 3 4 5 6 | stepdef "abort sleep" process := Executor.execute("sleep 30") if process.isAlive() then process.kill() end end |