use clap::Parser;
use std::path::PathBuf;
#[derive(Debug, Parser)]
#[command(version, about, long_about = "The better ls command line.")]
pub struct CLI {
#[arg(short, long, value_name = "PATH", value_hint = clap::ValueHint::DirPath)]
pub path: Option<PathBuf>,
#[arg(short, long, value_name = "FORMAT", default_value = "table")]
pub format: String,
#[arg(short, long)]
pub all: bool,
#[arg(short, long)]
pub recursive: bool,
#[arg(short = 'd', long, value_name = "DEPTH")]
pub max_depth: Option<usize>,
#[arg(short, long, value_name = "FIELD", default_value = "name")]
pub sort: String,
#[arg(short, long, value_name = "ORDER", default_value = "asc")]
pub order: String,
#[arg(short, long, value_name = "EXTS", value_delimiter = ',')]
pub extensions: Option<Vec<String>>,
#[arg(long, value_name = "SIZE")]
pub min_size: Option<u64>,
#[arg(long, value_name = "SIZE")]
pub max_size: Option<u64>,
#[arg(short = 'H', long)]
pub human_readable: bool,
#[arg(long)]
pub no_color: bool,
#[arg(long)]
pub dirs_only: bool,
#[arg(long)]
pub files_only: bool,
#[arg(short, long, value_name = "PATTERN")]
pub glob: Option<String>,
#[arg(long)]
pub summary: bool,
}