use std::path::PathBuf;
use clap::Parser;
use clap::ValueEnum;
#[derive(Debug, Clone, ValueEnum, Default)]
#[clap(rename_all = "kebab_case")]
pub enum OutputFormat {
#[default]
Csv,
Txt,
Html,
Json,
Xls,
}
#[derive(Parser, Debug, Default)]
#[command(
version,
about = "CSV SQL-like engine for command line CSV manipulation",
long_about = "A SQL-like engine for reading and manipulating CSV files from the command line.\n\
A fast alternative to Excel/LibreOffice for CSV operations."
)]
pub struct Args {
#[arg(short, long)]
pub command: Option<Vec<String>>,
#[arg(short, long, default_value_t = false)]
pub first_line_as_data: bool,
#[arg(short = 'm', long)]
#[arg(value_hint = clap::ValueHint::DirPath)]
pub home: Option<PathBuf>,
#[arg(short, long, default_value_t = false)]
pub no_console: bool,
#[arg(short, long)]
#[arg(value_hint = clap::ValueHint::DirPath)]
pub output: Option<PathBuf>,
#[arg(short='p', long, value_enum, default_value_t=OutputFormat::Csv)]
pub output_format: OutputFormat,
#[arg(short, long, default_value_t = false)]
pub display_as_csv: bool,
#[arg(short, long, default_value_t = false)]
pub write_mode: bool,
}