task_graph_mcp/cli/
mod.rs1pub mod diff;
7pub mod export;
8pub mod import;
9pub mod migrate;
10
11use clap::{Parser, Subcommand, ValueEnum};
12use diff::DiffArgs;
13use export::ExportArgs;
14use import::ImportArgs;
15use migrate::MigrateArgs;
16
17#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, ValueEnum)]
19pub enum UiMode {
20 #[default]
22 None,
23 Web,
25}
26
27pub const DEFAULT_UI_PORT: u16 = 31994;
29
30#[derive(Parser, Debug)]
32#[command(author, version, about, long_about = None)]
33pub struct Cli {
34 #[arg(short, long, global = true)]
36 pub config: Option<String>,
37
38 #[arg(short, long, global = true)]
40 pub database: Option<String>,
41
42 #[arg(short, long, global = true)]
44 pub media_dir: Option<String>,
45
46 #[arg(long, global = true)]
48 pub log_dir: Option<String>,
49
50 #[arg(short, long, global = true)]
52 pub verbose: bool,
53
54 #[arg(short, long, default_value = "2", global = true)]
56 pub log: String,
57
58 #[arg(long, value_enum, global = true)]
60 pub ui: Option<UiMode>,
61
62 #[arg(long, global = true)]
64 pub ui_port: Option<u16>,
65
66 #[command(subcommand)]
67 pub command: Option<Command>,
68}
69
70#[derive(Subcommand, Debug)]
72pub enum Command {
73 Serve,
75
76 Export(ExportArgs),
78
79 Import(ImportArgs),
81
82 Diff(DiffArgs),
84
85 Migrate(MigrateArgs),
87}