This commit is contained in:
Aleksej Shmelev 2025-07-05 14:37:48 -07:00 committed by GitHub
commit fb608b451b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -21,6 +21,14 @@ impl Search {
if let Some(home_dir) = dirs::home_dir() {
paths.push((home_dir.join(".config").join("just"), DEFAULT_JUSTFILE_NAME));
if let Some(xdg_config_home) = std::env::var_os("XDG_CONFIG_HOME") {
paths.push(
PathBuf::from(xdg_config_home)
.join("just")
.join(DEFAULT_JUSTFILE_NAME)
);
};
for justfile_name in JUSTFILE_NAMES {
paths.push((home_dir.clone(), justfile_name));
}
@ -399,4 +407,34 @@ mod tests {
assert_eq!(have, Path::new(want));
}
}
#[test]
fn global_justfile_path_from_xdg_env(){
let old_value = std::env::var_os("XDG_CONFIG_HOME");
std::env::set_var("XDG_CONFIG_HOME", "/test/config");
let paths = Search::global_justfile_paths();
assert!(paths.contains(&PathBuf::from("/test/config/just/justfile")));
if let Some(old) = old_value {
std::env::set_var("XDG_CONFIG_HOME", old);
} else {
std::env::remove_var("XDG_CONFIG_HOME");
}
}
#[test]
fn global_justfile_path_when_xdg_env_not_set(){
let old_value = std::env::var_os("XDG_CONFIG_HOME");
std::env::set_var("XDG_CONFIG_HOME", "");
let paths = Search::global_justfile_paths();
assert!(!paths.contains(&PathBuf::from("/test/config/just/justfile")));
if let Some(old) = old_value {
std::env::set_var("XDG_CONFIG_HOME", old);
} else {
std::env::remove_var("XDG_CONFIG_HOME");
}
}
}