use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(version, about, long_about = None)]
#[command(propagate_version = true)]
pub struct Cli {
#[command(subcommand)]
command: Commands
}
impl Cli {
#![allow(clippy::must_use_candidate)]
pub fn get_command(&self) -> &Commands {
&self.command
}
}
#[derive(Subcommand)]
pub enum Commands {
Scan {
#[arg(required = true, group = "directories")]
dirs: Vec<String>,
#[arg(short, long, group = "directories")]
#[arg(default_value_t = false)]
all: bool,
#[arg(long)]
#[arg(default_value_t = false)]
hidden: bool,
#[arg(short, long)]
#[arg(default_value_t = false)]
quiet: bool
},
List,
Add {
#[arg(required = true)]
repos: Vec<String>
},
Rm {
#[arg(required = true, group = "repositories")]
repos: Vec<String>,
#[arg(short, long, group = "repositories")]
#[arg(default_value_t = false)]
all: bool
},
Check {
#[arg(required = true, group = "repositories")]
repos: Vec<String>,
#[arg(short, long, group = "repositories")]
#[arg(default_value_t = false)]
all: bool,
#[arg(short, long, group = "output")]
#[arg(default_value_t = false)]
status: bool,
#[arg(short, long, group = "output")]
#[arg(default_value_t = false)]
remotes: bool
}
}