Skip to main content

Shell

Enum Shell 

Source
pub enum Shell {
    Bash,
    Fish,
    Powershell,
    Cmd,
    Zsh,
    Nushell,
    Csh,
    Ksh,
}
Expand description

Shells for which virtualenv activation scripts are available.

Variants§

§

Bash

Bourne Again SHell (bash)

§

Fish

Friendly Interactive SHell (fish)

§

Powershell

PowerShell

§

Cmd

Cmd (Command Prompt)

§

Zsh

Z SHell (zsh)

§

Nushell

Nushell

§

Csh

C SHell (csh)

§

Ksh

Korn SHell (ksh)

Implementations§

Source§

impl Shell

Source

pub fn from_env() -> Option<Self>

Determine the user’s current shell from the environment.

This will read the SHELL environment variable and try to determine which shell is in use from that.

If SHELL is not set, then on windows, it will default to powershell, and on other OSes it will return None.

If SHELL is set, but contains a value that doesn’t correspond to one of the supported shell types, then return None.

Source

pub fn from_shell_path(path: impl AsRef<Path>) -> Option<Self>

Parse a shell from a path to the executable for the shell.

§Examples
use crate::shells::Shell;

assert_eq!(Shell::from_shell_path("/bin/bash"), Some(Shell::Bash));
assert_eq!(Shell::from_shell_path("/usr/bin/zsh"), Some(Shell::Zsh));
assert_eq!(Shell::from_shell_path("/opt/my_custom_shell"), None);
Source

pub fn supports_update(self) -> bool

Returns true if the shell supports a PATH update command.

Source

pub fn configuration_files(self) -> Vec<PathBuf>

Return the configuration files that should be modified to append to a shell’s PATH.

Some of the logic here is based on rustup’s rc file detection.

See: https://github.com/rust-lang/rustup/blob/fede22fea7b160868cece632bd213e6d72f8912f/src/cli/self_update/shell.rs#L197

Source

pub fn contains_path(path: &Path) -> bool

Returns true if the given path is on the PATH in this shell.

Source

pub fn prepend_path(self, path: &Path) -> Option<String>

Returns the command necessary to prepend a directory to the PATH in this shell.

Trait Implementations§

Source§

impl Clone for Shell

Source§

fn clone(&self) -> Shell

Returns a duplicate 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 Shell

Source§

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

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

impl Display for Shell

Source§

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

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

impl Hash for Shell

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Shell

Source§

fn eq(&self, other: &Shell) -> 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 Copy for Shell

Source§

impl Eq for Shell

Source§

impl StructuralPartialEq for Shell

Auto Trait Implementations§

§

impl Freeze for Shell

§

impl RefUnwindSafe for Shell

§

impl Send for Shell

§

impl Sync for Shell

§

impl Unpin for Shell

§

impl UnwindSafe for Shell

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> Instrument for T

Source§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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