use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
#[command(
name = "retch",
version,
about = "A fast, feature-rich system information fetcher"
)]
pub struct Cli {
#[arg(short, long, value_enum, default_value = "long")]
pub mode: OutputMode,
#[arg(short, long)]
pub theme: Option<String>,
#[arg(short, long)]
pub config: 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, value_name = "PATH")]
pub write_config: Option<Option<String>>,
#[arg(long)]
pub merge_config: bool,
#[arg(long, value_delimiter = ',')]
pub fields: Option<Vec<String>>,
}
#[derive(ValueEnum, Clone, Debug, PartialEq)]
pub enum OutputMode {
Short,
Long,
Custom,
}