bootstrap::utils::exec

Struct BootstrapCommand

source
pub struct BootstrapCommand {
    command: Command,
    pub failure_behavior: BehaviorOnFailure,
    pub run_always: bool,
    drop_bomb: DropBomb,
}
Expand description

Wrapper around std::process::Command.

By default, the command will exit bootstrap if it fails. If you want to allow failures, use allow_failure. If you want to delay failures until the end of bootstrap, use delay_failure.

By default, the command will print its stdout/stderr to stdout/stderr of bootstrap (OutputMode::Print). If you want to handle the output programmatically, use BootstrapCommand::run_capture.

Bootstrap will print a debug log to stdout if the command fails and failure is not allowed.

Fields§

§command: Command§failure_behavior: BehaviorOnFailure§run_always: bool§drop_bomb: DropBomb

Implementations§

source§

impl BootstrapCommand

source

pub fn new<S: AsRef<OsStr>>(program: S) -> Self

source

pub fn arg<S: AsRef<OsStr>>(&mut self, arg: S) -> &mut Self

source

pub fn args<I, S>(&mut self, args: I) -> &mut Self
where I: IntoIterator<Item = S>, S: AsRef<OsStr>,

source

pub fn env<K, V>(&mut self, key: K, val: V) -> &mut Self
where K: AsRef<OsStr>, V: AsRef<OsStr>,

source

pub fn get_envs(&self) -> CommandEnvs<'_>

source

pub fn get_args(&self) -> CommandArgs<'_>

source

pub fn env_remove<K: AsRef<OsStr>>(&mut self, key: K) -> &mut Self

source

pub fn current_dir<P: AsRef<Path>>(&mut self, dir: P) -> &mut Self

source

pub fn delay_failure(self) -> Self

source

pub fn fail_fast(self) -> Self

source

pub fn allow_failure(self) -> Self

source

pub fn run_always(&mut self) -> &mut Self

source

pub fn run(&mut self, builder: &Build) -> bool

Run the command, while printing stdout and stderr. Returns true if the command has succeeded.

source

pub fn run_capture(&mut self, builder: &Build) -> CommandOutput

Run the command, while capturing and returning all its output.

source

pub fn run_capture_stdout(&mut self, builder: &Build) -> CommandOutput

Run the command, while capturing and returning stdout, and printing stderr.

source

pub fn as_command_mut(&mut self) -> &mut Command

Provides access to the stdlib Command inside. FIXME: This function should be eventually removed from bootstrap.

source

pub fn mark_as_executed(&mut self)

Mark the command as being executed, disarming the drop bomb. If this method is not called before the command is dropped, its drop will panic.

source

pub fn get_created_location(&self) -> Location<'static>

Returns the source code location where this command was created.

source

pub fn force_coloring_in_ci(&mut self)

If in a CI environment, forces the command to run with colors.

Trait Implementations§

source§

impl Debug for BootstrapCommand

source§

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

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

impl From<Cargo> for BootstrapCommand

source§

fn from(cargo: Cargo) -> BootstrapCommand

Converts to this type from the input type.
source§

impl From<Command> for BootstrapCommand

source§

fn from(command: Command) -> Self

Converts to this type from the input type.

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

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 272 bytes