use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, default_value = "long")]
pub mode: Option<String>,
#[arg(short, long)]
pub theme: Option<String>,
#[arg(short, long)]
pub config: Option<String>,
#[arg(short, long)]
pub logo: Option<String>,
#[arg(long)]
pub no_logo: bool,
#[arg(long)]
pub ascii_only: bool,
#[arg(long)]
pub short: bool,
#[arg(long)]
pub long: bool,
#[arg(long)]
pub list_themes: bool,
#[arg(long)]
pub print_theme_template: bool,
#[arg(long)]
pub list_distros: bool,
#[arg(long)]
pub print_logos: bool,
#[arg(long)]
pub generate_config: bool,
#[arg(long)]
pub write_config: bool,
#[arg(trailing_var_arg = true, num_args = 0..)]
pub write_config_path: Vec<String>,
#[arg(long)]
pub merge_config: bool,
#[arg(long)]
pub fields: Option<String>,
#[arg(long, value_enum)]
pub completions: Option<CompletionShell>,
}
#[derive(ValueEnum, Clone, Debug)]
pub enum CompletionShell {
Bash,
Elvish,
Fish,
#[clap(name = "power-shell")]
PowerShell,
Zsh,
Nushell,
}