From 0f88ed387647d630c7ce9a819af66b249f1d5383 Mon Sep 17 00:00:00 2001 From: Elaine Wang Date: Tue, 12 May 2026 10:57:19 +0800 Subject: [PATCH] fix: respect CORTEX_HOME in aliases --- src/cortex-cli/src/alias_cmd.rs | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/cortex-cli/src/alias_cmd.rs b/src/cortex-cli/src/alias_cmd.rs index f1df82c72..b619ae2fe 100644 --- a/src/cortex-cli/src/alias_cmd.rs +++ b/src/cortex-cli/src/alias_cmd.rs @@ -104,9 +104,13 @@ pub struct AliasConfig { /// Get the aliases config file path. fn get_aliases_config_path() -> PathBuf { - dirs::home_dir() - .map(|h| h.join(".cortex").join("aliases.toml")) - .unwrap_or_else(|| PathBuf::from(".cortex/aliases.toml")) + cortex_common::get_cortex_home() + .unwrap_or_else(|| { + dirs::home_dir() + .map(|h| h.join(".cortex")) + .unwrap_or_else(|| PathBuf::from(".cortex")) + }) + .join("aliases.toml") } /// Load aliases from config file. @@ -275,6 +279,21 @@ async fn run_show(args: AliasShowArgs) -> Result<()> { mod tests { use super::*; + #[test] + fn test_get_aliases_config_path_respects_cortex_home() { + let previous = std::env::var_os("CORTEX_HOME"); + let expected_home = std::env::temp_dir().join("cortex-alias-test-home"); + + unsafe { std::env::set_var("CORTEX_HOME", &expected_home) }; + assert_eq!(get_aliases_config_path(), expected_home.join("aliases.toml")); + + if let Some(value) = previous { + unsafe { std::env::set_var("CORTEX_HOME", value) }; + } else { + unsafe { std::env::remove_var("CORTEX_HOME") }; + } + } + // ========================================================================== // AliasDefinition tests // ==========================================================================