use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(author, version, about)]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Commands>,
#[arg(short, long)]
pub list: bool,
#[arg(short, long)]
pub interactive: bool,
#[arg(long)]
pub notify: bool,
#[arg(long)]
pub dry_run: bool,
#[arg(long, value_name = "DIR")]
pub cwd: Option<std::path::PathBuf>,
}
#[derive(Subcommand)]
pub enum Commands {
Init {
#[arg(long)]
template: Option<String>,
},
Add {
name: String,
script: String,
},
#[command(alias = "rm")]
Remove {
name: String,
},
Rename {
from: String,
to: String,
},
Migrate,
Doctor,
DoctorUpdate,
#[command(external_subcommand)]
Run(Vec<String>),
}