use crate::built_info;
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(
name = built_info::PKG_NAME,
about = built_info::PKG_DESCRIPTION,
version = built_info::PKG_VERSION,
author = built_info::PKG_AUTHORS,
)]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Command>,
#[arg(default_value = ".")]
pub repo_path: String,
#[arg(long, short)]
pub verbose: bool,
#[arg(long)]
pub check_model: bool,
#[arg(long)]
pub commit: bool,
#[arg(long)]
pub signoff: bool,
#[arg(long, short)]
pub yes: bool,
#[arg(long)]
pub copy_to_clipboard: bool,
#[arg(long)]
pub json: bool,
#[arg(long)]
pub no_table: bool,
#[arg(long)]
pub check_env: bool,
#[arg(long, short, default_value = "")]
pub save: String,
#[arg(long)]
pub no_cache: bool,
#[arg(long)]
pub clear_cache: bool,
}
#[derive(Debug, Subcommand)]
pub enum Command {
#[command(name = "install-hook")]
InstallHook {
#[arg(default_value = ".")]
repo_path: String,
},
}
#[cfg(test)]
mod tests {
use super::*;
use clap::CommandFactory;
#[test]
fn cli_definition_is_valid() {
Cli::command().debug_assert();
}
}