pub mod agent;
pub mod diff;
pub mod export;
pub mod import;
pub mod migrate;
use agent::AgentArgs;
use clap::{Parser, Subcommand, ValueEnum};
use diff::DiffArgs;
use export::ExportArgs;
use import::ImportArgs;
use migrate::MigrateArgs;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, ValueEnum)]
pub enum UiMode {
#[default]
None,
Web,
}
pub const DEFAULT_UI_PORT: u16 = 31994;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, global = true)]
pub config: Option<String>,
#[arg(short, long, global = true)]
pub database: Option<String>,
#[arg(short, long, global = true)]
pub media_dir: Option<String>,
#[arg(long, global = true)]
pub log_dir: Option<String>,
#[arg(short, long, global = true)]
pub verbose: bool,
#[arg(short, long, default_value = "2", global = true)]
pub log: String,
#[arg(long, value_enum, global = true)]
pub ui: Option<UiMode>,
#[arg(long, global = true)]
pub ui_port: Option<u16>,
#[arg(long)]
pub stdio: bool,
#[command(subcommand)]
pub command: Option<Command>,
}
#[derive(Subcommand, Debug)]
pub enum Command {
Serve,
Export(ExportArgs),
Import(ImportArgs),
Diff(DiffArgs),
Migrate(MigrateArgs),
Agent(AgentArgs),
}