Skip to main content

expand_root

Function expand_root 

Source
pub fn expand_root(root: &str, primary: &Path) -> Option<PathBuf>
Expand description

Expand one declared root: <primary>/, ~/, ${NAME:-default} and $NAME, nothing else. None when a variable without a default is unset.

use majordomus_cli::share::expand_root;
std::env::set_var("MJ_DOCTEST_ROOT", "/srv/x");
std::env::remove_var("MJ_DOCTEST_UNSET");
let primary = Path::new("/repo");
assert_eq!(expand_root("<primary>/.claude/worktrees", primary).unwrap(), Path::new("/repo/.claude/worktrees"));
assert_eq!(expand_root("$MJ_DOCTEST_ROOT/wt", primary).unwrap(), Path::new("/srv/x/wt"));
assert_eq!(expand_root("${MJ_DOCTEST_UNSET:-/d}/wt", primary).unwrap(), Path::new("/d/wt"));
assert!(expand_root("$MJ_DOCTEST_UNSET/wt", primary).is_none());
assert_eq!(expand_root("/tmp", primary).unwrap(), Path::new("/tmp"));