use std::path::PathBuf;
use clap::Parser;
#[derive(Parser)]
pub struct ScanSystemArgs {
#[arg(long, default_value = "50G", value_parser = parse_space_bytes)]
pub space: u64,
#[arg(long, default_value_t = false)]
pub include_network: bool,
#[arg(long, default_value_t = false)]
pub no_git_history: bool,
#[arg(long, default_value_t = false)]
pub respect_gitignore: bool,
#[arg(long)]
pub output: Option<PathBuf>,
#[arg(long, default_value = "detectors")]
pub detectors: PathBuf,
#[arg(skip)]
pub(crate) detectors_cli_explicit: bool,
#[arg(long, value_name = "DIR")]
pub cache_dir: Option<PathBuf>,
#[arg(long, value_name = "N", value_parser = crate::value_parsers::parse_positive_thread_count)]
pub threads: Option<usize>,
#[arg(long, default_value_t = false)]
pub lockdown: bool,
}
#[doc(hidden)]
pub fn parse_space_bytes(s: &str) -> Result<u64, String> {
crate::value_parsers::parse_byte_size(s).map(|bytes| bytes as u64)
}