use std::path::PathBuf;
use structopt::StructOpt;
#[derive(StructOpt, Debug)]
#[structopt(setting = structopt::clap::AppSettings::TrailingVarArg)]
pub struct Opt {
#[structopt(subcommand)]
pub sub_cmd: Option<SubOpt>,
#[structopt(global = true, short = "f", long)]
pub config_path: Option<PathBuf>,
#[structopt(global = true, short = "d", long)]
pub debug: bool,
#[structopt(global = true, short, long)]
pub no_op: bool,
}
#[derive(Debug, StructOpt)]
pub enum SubOpt {
#[structopt(flatten)]
Crud(Crud),
Edit,
Init,
#[structopt(external_subcommand)]
Other(Vec<String>),
}
#[derive(Debug, StructOpt)]
pub enum Crud {
Add {
name: String,
cmd: String,
},
List {
name: Option<String>,
},
Update {
name: String,
cmd: String,
},
Delete {
name: String,
},
}