use std::path::PathBuf;
use clap::{Parser, Subcommand};
use crate::Algorithm;
#[derive(Parser)]
#[clap(
name = "QuickDash",
version,
about,
long_about = "A modern alternative to QuickSFV using Rust. Made with <3 by Cerda."
)]
pub struct Commands {
#[clap(arg_enum, short, long, default_value = "blake3")]
pub algorithm: Algorithm,
#[clap(short, long)]
pub depth: Option<usize>,
#[clap(long)]
pub follow_symlinks: bool,
#[clap(short, long)]
pub ignored_files: Vec<String>,
#[clap(short, long, default_value_t = 0)]
pub jobs: usize,
#[clap(subcommand)]
pub command: Mode,
}
#[derive(Subcommand)]
pub enum Mode {
Create {
#[clap(default_value = ".")]
path: PathBuf,
#[clap(long)]
file: Option<PathBuf>,
#[clap(short, long)]
force: bool,
},
Verify {
#[clap(default_value = ".")]
path: PathBuf,
#[clap(long)]
file: Option<PathBuf>,
},
}