pub struct ShellCommand {
pub command: String,
pub arguments: Option<Vec<String>>,
pub cwd: Option<String>,
pub paths: Option<Vec<String>>,
}
Expand description
The processor configuration.
Fields§
§command: String
The main shell command to execute.
arguments: Option<Vec<String>>
The arguments added to the main
command.
cwd: Option<String>
The current working directory in which the command is executed.
This allows you to move to a child path within the Context
workspace.
If set to None
, the root of the workspace is used as the default.
paths: Option<Vec<String>>
Optional paths added to the PATH
environment variable.
If you have a single script inside the bin/
directory you want to
execute, you can also use the cwd
option, but if your scripts call
other custom scripts, and expect them to be directly accessible, you can
add bin
to paths
to make that work.
Trait Implementations§
Source§impl Clone for ShellCommand
impl Clone for ShellCommand
Source§fn clone(&self) -> ShellCommand
fn clone(&self) -> ShellCommand
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ShellCommand
impl Debug for ShellCommand
Source§impl<'de> Deserialize<'de> for ShellCommand
impl<'de> Deserialize<'de> for ShellCommand
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ShellCommand
impl PartialEq for ShellCommand
Source§impl<'a> Processor<'a> for ShellCommand
impl<'a> Processor<'a> for ShellCommand
Source§fn validate(&self) -> Result<(), Self::Error>
fn validate(&self) -> Result<(), Self::Error>
Validate the ShellCommand
configuration.
§Errors
This method returns the Error::Path
error if either the cwd
or
the paths
fields contain anything other than a simple relative path,
such as my/path
. Anything such as ../
, or /etc
is not allowed.
Source§fn run(&self, context: &Context) -> Result<Option<Self::Output>, Self::Error>
fn run(&self, context: &Context) -> Result<Option<Self::Output>, Self::Error>
Run the shell command as defined by the provided configuration.
The command will be executed in the automaat_core::Context
workspace, optionally in a child path using the cwd
option.
§Output
None
is returned if the processor runs successfully but no value was
returned by the command on stdout.
Some
is returned if the command did return a value and exited with
status code 0
.
If a value is returned, any ANSI escape codes are stripped, and the return value is transformed lossy transformed into a valid UTF-8 string, with any invalid bytes transformed to the replacement character. Any whitespace to the right of the output (including newlines) is also stripped.
§Errors
If the run fails, an Error
result value is returned. The variant can
differ, depending on if the command itself failed, some IO error
happened, or the configuration is invalid.