[−][src]Struct automaat_processor_shell_command::ShellCommand
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]
fn eq(&self, other: &ShellCommand) -> bool
[src]
fn ne(&self, other: &ShellCommand) -> bool
[src]
impl Clone for ShellCommand
[src]
fn clone(&self) -> 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]
const NAME: &'static str
[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]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl Serialize for ShellCommand
[src]
Auto Trait Implementations
impl Send for ShellCommand
impl Sync for ShellCommand
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,