use clap::Parser;
use std::path::PathBuf;
#[derive(Parser, Debug, Clone)]
#[command(name = "zarumet")]
#[command(author = "Immelancholy")]
#[command(version)]
#[command(about = "A TUI MPD client with album art", long_about = None)]
pub struct Args {
#[arg(short, long)]
pub config: Option<PathBuf>,
#[arg(short, long)]
pub address: Option<String>,
#[arg(short, long, value_parser = parse_on_off)]
pub bit_perfect: Option<bool>,
#[arg(long, value_name = "PATH", num_args = 0..=1, require_equals = false, default_missing_value = ".")]
pub generate_config: Option<PathBuf>,
}
fn parse_on_off(s: &str) -> Result<bool, String> {
match s.to_lowercase().as_str() {
"on" => Ok(true),
"off" => Ok(false),
_ => Err(format!("Invalid value '{}': expected 'on' or 'off'", s)),
}
}