[][src]Struct automaat_processor_shell_command::ShellCommand

pub struct ShellCommand {
    pub command: String,
    pub arguments: Option<Vec<String>>,
    pub cwd: Option<String>,
    pub paths: Option<Vec<String>>,
}

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

impl Eq for ShellCommand[src]

impl PartialEq<ShellCommand> for ShellCommand[src]

impl Clone for ShellCommand[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ShellCommand[src]

impl<'a> Processor<'a> for ShellCommand[src]

type Error = Error

If a processor fails its intended purpose, the returned error is turned into a string, and shown in the automaat-web-client application. Read more

type Output = String

The processor can return any (successful) output it wants, as long as that type implements the [std::fmt::Display] trait. Read more

fn validate(&self) -> Result<(), Self::Error>[src]

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.

fn run(&self, context: &Context) -> Result<Option<Self::Output>, Self::Error>[src]

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.

impl<'de> Deserialize<'de> for ShellCommand[src]

impl Serialize for ShellCommand[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]