Skip to main content

ShellEnum

Enum ShellEnum 

Source
pub enum ShellEnum {
    Bash(Bash),
    Zsh(Zsh),
    Xonsh(Xonsh),
    CmdExe(CmdExe),
    PowerShell(PowerShell),
    Fish(Fish),
    NuShell(NuShell),
}
Expand description

A generic Shell implementation for concrete shell types.

Variants§

§

Bash(Bash)

§

Zsh(Zsh)

§

Xonsh(Xonsh)

§

CmdExe(CmdExe)

§

PowerShell(PowerShell)

§

Fish(Fish)

§

NuShell(NuShell)

Implementations§

Source§

impl ShellEnum

Source

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

Parse a shell from a path to the executable for the 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 set, but contains a value that doesn’t correspond to one of the supported shell types, then return None.

Trait Implementations§

Source§

impl Clone for ShellEnum

Source§

fn clone(&self) -> ShellEnum

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ShellEnum

Source§

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

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

impl Default for ShellEnum

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<Bash> for ShellEnum

Source§

fn from(v: Bash) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<CmdExe> for ShellEnum

Source§

fn from(v: CmdExe) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<Fish> for ShellEnum

Source§

fn from(v: Fish) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<NuShell> for ShellEnum

Source§

fn from(v: NuShell) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<PowerShell> for ShellEnum

Source§

fn from(v: PowerShell) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<Xonsh> for ShellEnum

Source§

fn from(v: Xonsh) -> ShellEnum

Converts to this type from the input type.
Source§

impl From<Zsh> for ShellEnum

Source§

fn from(v: Zsh) -> ShellEnum

Converts to this type from the input type.
Source§

impl FromStr for ShellEnum

Source§

type Err = ParseShellEnumError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Shell for ShellEnum

Source§

fn force_utf8( &self, __enum_dispatch_arg_0: &mut impl Write, ) -> Result<(), ShellError>

Write a command to the script that forces the usage of UTF8-encoding for the shell script.

Source§

fn set_env_var( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &str, __enum_dispatch_arg_2: &str, ) -> Result<(), ShellError>

Set an env var by export-ing it.

Source§

fn unset_env_var( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &str, ) -> Result<(), ShellError>

Unset an env var by unset-ing it.

Source§

fn run_script( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &Path, ) -> Result<(), ShellError>

Run a script in the current shell.

Source§

fn source_completions( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &Path, ) -> Result<(), ShellError>

Source completion scripts for the shell from a given prefix path. Note: the completions_dir is the directory where the completions are stored. You can use Self::completion_script_location to get the correct location for a given shell type.

Source§

fn can_run_script(&self, __enum_dispatch_arg_0: &Path) -> bool

Test to see if the path can be executed by the shell, based on the extension of the path.

Source§

fn run_command<'a>( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: impl IntoIterator<Item = &'a str> + 'a, ) -> Result

Executes a command in the current shell. Use Self::run_script when you want to run another shell script.

Source§

fn set_path( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &[PathBuf], __enum_dispatch_arg_2: PathModificationBehavior, __enum_dispatch_arg_3: &Platform, ) -> Result<(), ShellError>

Set the PATH variable to the given paths.

Source§

fn extension(&self) -> &str

The extension that shell scripts for this interpreter usually use.

Source§

fn executable(&self) -> &str

The executable that can be called to start this shell.

Source§

fn create_run_script_command(&self, __enum_dispatch_arg_0: &Path) -> Command

Constructs a Command that will execute the specified script by this shell.

Source§

fn path_separator(&self, __enum_dispatch_arg_0: &Platform) -> &str

Path separator

Source§

fn path_var(&self, __enum_dispatch_arg_0: &Platform) -> &str

Returns the name of the PATH variable for the given platform. On Windows, path variables are case-insensitive but not all shells treat them case-insensitive.

Source§

fn format_env_var(&self, __enum_dispatch_arg_0: &str) -> String

Format the environment variable for the shell.

Source§

fn echo( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &str, ) -> Result

Emits echoing certain text to stdout.

Source§

fn print_env(&self, __enum_dispatch_arg_0: &mut impl Write) -> Result

Emits writing all current environment variables to stdout.

Source§

fn write_script( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &str, ) -> Result<()>

Write the script to the writer and do some post-processing for line-endings. Only really relevant for cmd.exe scripts.

Source§

fn parse_env<'i>( &self, __enum_dispatch_arg_0: &'i str, ) -> HashMap<&'i str, &'i str>

Parses environment variables emitted by the Shell::env command.

Source§

fn line_ending(&self) -> &str

Get the line ending for this shell. Only CmdExe uses \r\n.

Source§

fn completion_script_location(&self) -> Option<&'static Path>

Return the location where completion scripts are found in a Conda environment.

  • bash: share/bash-completion/completions
  • zsh: share/zsh/site-functions
  • fish: share/fish/vendor_completions.d

The return value must be joined with prefix.join(completion_script_location()).

Source§

fn restore_env_var( &self, __enum_dispatch_arg_0: &mut impl Write, __enum_dispatch_arg_1: &str, __enum_dispatch_arg_2: &str, ) -> Result<(), ShellError>

Restores an environment variable from its backup if it exists, otherwise unsets it.

§Arguments
  • key - The name of the environment variable to restore
  • backup_key - The name of the backup environment variable
Source§

impl TryInto<Bash> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<Bash, <Self as TryInto<Bash>>::Error>

Performs the conversion.
Source§

impl TryInto<CmdExe> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<CmdExe, <Self as TryInto<CmdExe>>::Error>

Performs the conversion.
Source§

impl TryInto<Fish> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<Fish, <Self as TryInto<Fish>>::Error>

Performs the conversion.
Source§

impl TryInto<NuShell> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<NuShell, <Self as TryInto<NuShell>>::Error>

Performs the conversion.
Source§

impl TryInto<PowerShell> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<PowerShell, <Self as TryInto<PowerShell>>::Error>

Performs the conversion.
Source§

impl TryInto<Xonsh> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<Xonsh, <Self as TryInto<Xonsh>>::Error>

Performs the conversion.
Source§

impl TryInto<Zsh> for ShellEnum

Source§

type Error = &'static str

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

fn try_into(self) -> Result<Zsh, <Self as TryInto<Zsh>>::Error>

Performs the conversion.

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

Source§

type Output = T

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