use clap::{Parser, Subcommand};
use std::path::PathBuf;
#[derive(Debug, Parser)]
#[command(version, about)]
pub struct Cli {
#[command(subcommand)]
pub command: SubCommands,
}
#[derive(Debug, Subcommand)]
pub enum SubCommands {
Check(CheckArgs),
Explain(ExplainArgs),
}
#[derive(Debug, clap::Parser)]
pub struct ExplainArgs {
#[arg()]
pub rules: Vec<String>,
}
#[derive(Debug, clap::Parser)]
pub struct CheckArgs {
#[arg(default_value = ".")]
pub files: Vec<PathBuf>,
#[arg(long, value_delimiter = ',')]
pub include: Vec<String>,
#[arg(long, value_delimiter = ',')]
pub ignore: Vec<String>,
#[arg(long, value_delimiter=',', conflicts_with_all=["include", "ignore"])]
pub select: Vec<String>,
#[arg(long, default_value = "100")]
pub line_length: usize,
}
pub fn parse_args() -> Cli {
Cli::parse()
}