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§
Implementations§
Source§impl ShellEnum
impl ShellEnum
Sourcepub fn from_shell_path<P: AsRef<Path>>(path: P) -> Option<Self>
pub fn from_shell_path<P: AsRef<Path>>(path: P) -> Option<Self>
Parse a shell from a path to the executable for the shell.
Sourcepub fn from_env() -> Option<Self>
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 From<PowerShell> for ShellEnum
impl From<PowerShell> for ShellEnum
Source§fn from(v: PowerShell) -> ShellEnum
fn from(v: PowerShell) -> ShellEnum
Source§impl Shell for ShellEnum
impl Shell for ShellEnum
Source§fn force_utf8(
&self,
__enum_dispatch_arg_0: &mut impl Write,
) -> Result<(), ShellError>
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>
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>
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>
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>
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
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
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>
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
fn extension(&self) -> &str
The extension that shell scripts for this interpreter usually use.
Source§fn executable(&self) -> &str
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
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
fn path_separator(&self, __enum_dispatch_arg_0: &Platform) -> &str
Path separator
Source§fn path_var(&self, __enum_dispatch_arg_0: &Platform) -> &str
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
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
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
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<()>
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>
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
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>
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>
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 restorebackup_key- The name of the backup environment variable
Source§impl TryInto<PowerShell> for ShellEnum
impl TryInto<PowerShell> for ShellEnum
Auto Trait Implementations§
impl Freeze for ShellEnum
impl RefUnwindSafe for ShellEnum
impl Send for ShellEnum
impl Sync for ShellEnum
impl Unpin for ShellEnum
impl UnsafeUnpin for ShellEnum
impl UnwindSafe for ShellEnum
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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