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: StringThe 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.