use clap::Clap;
#[derive(Clap, Debug)]
pub struct Opt {
#[clap(subcommand)]
pub command: Command,
}
#[derive(Clap, Debug)]
pub enum Command {
#[clap(alias = "db")]
Database(DatabaseOpt),
#[clap(alias = "prep")]
Prepare {
#[clap(long)]
check: bool,
#[clap(last = true)]
args: Vec<String>,
},
#[clap(alias = "mig")]
Migrate(MigrateOpt),
}
#[derive(Clap, Debug)]
pub struct DatabaseOpt {
#[clap(subcommand)]
pub command: DatabaseCommand,
}
#[derive(Clap, Debug)]
pub enum DatabaseCommand {
Create,
Drop {
#[clap(short)]
yes: bool,
},
}
#[derive(Clap, Debug)]
pub struct MigrateOpt {
#[clap(subcommand)]
pub command: MigrateCommand,
}
#[derive(Clap, Debug)]
pub enum MigrateCommand {
Add { description: String },
Run,
Info,
}