summaryrefslogtreecommitdiff
path: root/makima/daemon/src/cli.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/daemon/src/cli.rs')
-rw-r--r--makima/daemon/src/cli.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/makima/daemon/src/cli.rs b/makima/daemon/src/cli.rs
new file mode 100644
index 0000000..ca84017
--- /dev/null
+++ b/makima/daemon/src/cli.rs
@@ -0,0 +1,45 @@
+//! Command-line argument parsing for makima-daemon.
+
+use clap::Parser;
+use std::path::PathBuf;
+
+/// Makima daemon for managing Claude Code instances in isolated worktrees.
+#[derive(Parser, Debug)]
+#[command(name = "makima-daemon")]
+#[command(version, about, long_about = None)]
+pub struct Cli {
+ /// Path to custom config file
+ #[arg(short, long)]
+ pub config: Option<PathBuf>,
+
+ /// Directory where repositories are cloned
+ #[arg(long, env = "MAKIMA_DAEMON_REPOS_DIR")]
+ pub repos_dir: Option<PathBuf>,
+
+ /// Directory where worktrees are created
+ #[arg(long, env = "MAKIMA_DAEMON_WORKTREES_DIR")]
+ pub worktrees_dir: Option<PathBuf>,
+
+ /// WebSocket server URL to connect to
+ #[arg(long, env = "MAKIMA_DAEMON_SERVER_URL")]
+ pub server_url: Option<String>,
+
+ /// API key for server authentication
+ #[arg(long, env = "MAKIMA_DAEMON_SERVER_APIKEY")]
+ pub api_key: Option<String>,
+
+ /// Maximum number of concurrent tasks
+ #[arg(long)]
+ pub max_tasks: Option<u32>,
+
+ /// Log level (trace, debug, info, warn, error)
+ #[arg(short, long, default_value = "info")]
+ pub log_level: String,
+}
+
+impl Cli {
+ /// Parse command-line arguments
+ pub fn parse_args() -> Self {
+ Self::parse()
+ }
+}