Treatment execTerminable

process/exec::execTerminable


Inputs

⇥ commands: Stream<Command> (process/command::Command)
⇥ environment: Block<Option<Environment>> (process/environment::Environment)
⇥ executor: Block<Executor> (process/exec::Executor)
⇥ terminate: Block<void>

Outputs

↦ completed: Block<void>
↦ error: Block<string>
↦ exit: Stream<Option<i32>>
↦ failed: Block<void>
↦ finished: Block<void>
↦ started: Block<void>
↦ terminated: Block<void>


Executes commands.

Takes an Executor on which commands will be run with the optional environment.

When the execution finishes, finished is emitted, regardless of the execution or commands status. completed is emitted if all the commands executions went right from executor perspective (the command thelselves may have failed in their own logic), and exit contains the return code of each command. failed is emitted if the executor is not able to launch a command, and error contains the associated error message, and no new command is executed. If terminate signal is received, the executor stops as soon as possible the process, and terminated is then emitted. In that case finished is also emitted but not failed or completed.