From 4f78e6c6497135cbc2923089ee26f5a50e43f06a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 5 May 2026 16:51:50 +0900 Subject: refactor(commands): consolidate working_dir resolution into Cli method --- crates/mozart/src/commands.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'crates/mozart/src/commands.rs') diff --git a/crates/mozart/src/commands.rs b/crates/mozart/src/commands.rs index 504e38d..44ca07d 100644 --- a/crates/mozart/src/commands.rs +++ b/crates/mozart/src/commands.rs @@ -62,7 +62,7 @@ pub struct Cli { /// If specified, use the given directory as working directory #[arg(short = 'd', long = "working-dir", global = true)] - pub working_dir: Option, + working_dir: Option, /// Prevent use of the cache #[arg(long, global = true)] @@ -85,6 +85,18 @@ pub struct Cli { pub no_ansi: bool, } +impl Cli { + /// Resolve the working directory: returns `--working-dir` if set, otherwise + /// the current working directory. + pub fn working_dir(&self) -> anyhow::Result { + match &self.working_dir { + Some(dir) => Ok(std::path::PathBuf::from(dir)), + None => std::env::current_dir() + .map_err(|e| anyhow::anyhow!("Failed to get current directory: {}", e)), + } + } +} + #[derive(clap::Subcommand)] pub enum Commands { /// Shows a short information about Mozart -- cgit v1.3.1