Struct ShellCommand

Source
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

Source§

fn clone(&self) -> ShellCommand

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ShellCommand

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ShellCommand

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for ShellCommand

Source§

fn eq(&self, other: &ShellCommand) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Processor<'a> for ShellCommand

Source§

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>

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.

Source§

const NAME: &'static str = "Shell Command"

The human-formatted name of the processor, used to visually identify this processor amongst others.
Source§

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.
Source§

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
Source§

impl Serialize for ShellCommand

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for ShellCommand

Source§

impl StructuralPartialEq for ShellCommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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