From 03b709a0e7233de3c94a09b14e148d7e8a2cfec5 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 2 Apr 2024 15:50:48 -0400 Subject: [PATCH] Detect Fish via `FISH_VERSION` (#2781) ## Summary Apparently `SHELL` isn't always set to Fish: https://github.com/fish-shell/fish-shell/issues/374. ## Test Plan `uv venv` after running `fish` in macOS. --- crates/uv/src/shell.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/uv/src/shell.rs b/crates/uv/src/shell.rs index d1ec39307991..69c8462f7aa0 100644 --- a/crates/uv/src/shell.rs +++ b/crates/uv/src/shell.rs @@ -33,6 +33,12 @@ impl Shell { pub(crate) fn from_env() -> Option { if std::env::var_os("NU_VERSION").is_some() { Some(Shell::Nushell) + } else if std::env::var_os("FISH_VERSION").is_some() { + Some(Shell::Fish) + } else if std::env::var_os("BASH_VERSION").is_some() { + Some(Shell::Bash) + } else if std::env::var_os("ZSH_VERSION").is_some() { + Some(Shell::Zsh) } else if let Some(env_shell) = std::env::var_os("SHELL") { Shell::from_shell_path(env_shell) } else if cfg!(windows) {