losan 1.0.0

An high-performance multi-threaded log sanitizer built in Rust
use clap::{Parser, Subcommand};
use std::path::PathBuf;

#[derive(Debug, Parser)]
#[command(
    name = "log-sanitizer",
    version,
    about = "High-performance multi-threaded log sanitizer",
    long_about = None
)]
pub struct Args {
    #[command(subcommand)]
    pub commands: Commands,
}

#[derive(Debug, Subcommand)]
pub enum Commands {
    /// Hides all sensitive information in selected files or directories
    Clean(CleanArgs),
}

#[derive(Debug, Parser)]
pub struct CleanArgs {
    /// Path to the input file or directory containing .log files
    #[arg(
        short = 'i',
        long = "input",
        value_name = "INPUT_PATH",
        required = true
    )]
    pub input: PathBuf,

    /// Directory where sanitized files will be saved
    #[arg(
        short = 'o',
        long = "output-dir",
        value_name = "OUTPUT_DIR",
        default_value = "sanitized_output"
    )]
    pub output_dir: PathBuf,
}