Shell

Struct Shell 

Source
pub struct Shell<'a, T: Utf8Encoding> { /* private fields */ }
Expand description

A stateful shell abstraction for interacting with the guest.

This is modeled after xshell::Shell.

Implementations§

Source§

impl<T> Shell<'_, T>
where T: Utf8Encoding,

Source

pub fn change_dir(&mut self, path: impl AsRef<Utf8Path<T>>)

Change the effective working directory of the shell.

Other paths will be resolved relative to this directory.

Source

pub fn chroot(&mut self, root: impl Into<String>)

Set the chroot directory for commands run by this shell.

Each spawned process will chroot into this directory before exec (Linux only). The shell itself is unaffected.

Source

pub async fn read_file(&self, path: impl AsRef<Utf8Path<T>>) -> Result<String>

Reads a file from the guest into a string.

Source

pub async fn read_file_raw( &self, path: impl AsRef<Utf8Path<T>>, ) -> Result<Vec<u8>>

Reads a file from the guest into a raw byte vector.

Source

pub fn cmd(&self, program: impl AsRef<Utf8Path<T>>) -> Cmd<'_, T>

Creates a builder to execute a command inside the guest.

Consider using the cmd! macro.

Auto Trait Implementations§

§

impl<'a, T> Freeze for Shell<'a, T>

§

impl<'a, T> !RefUnwindSafe for Shell<'a, T>

§

impl<'a, T> Send for Shell<'a, T>
where T: Send,

§

impl<'a, T> Sync for Shell<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for Shell<'a, T>
where T: Unpin,

§

impl<'a, T> !UnwindSafe for Shell<'a, T>

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more