Codex Handbook
file-search/src/cli.rs 42 lines
use std::num::NonZero;use std::path::PathBuf;use clap::ArgAction;use clap::Parser;/// Fuzzy matches filenames under a directory.#[derive(Parser)]#[command(version)]pub struct Cli {    /// Whether to output results in JSON format.    #[clap(long, default_value = "false")]    pub json: bool,    /// Maximum number of results to return.    #[clap(long, short = 'l', default_value = "64")]    pub limit: NonZero<usize>,    /// Directory to search.    #[clap(long, short = 'C')]    pub cwd: Option<PathBuf>,    /// Include matching file indices in the output.    #[arg(long, default_value = "false")]    pub compute_indices: bool,    // While it is common to default to the number of logical CPUs when creating    // a thread pool, empirically, the I/O of the filetree traversal offers    // limited parallelism and is the bottleneck, so using a smaller number of    // threads is more efficient. (Empirically, using more than 2 threads doesn't seem to provide much benefit.)    //    /// Number of worker threads to use.    #[clap(long, default_value = "2")]    pub threads: NonZero<usize>,    /// Exclude patterns    #[arg(short, long, action = ArgAction::Append)]    pub exclude: Vec<String>,    /// Search pattern.    pub pattern: Option<String>,}