use std::ffi::OsString;
use std::path::PathBuf;
use clap::{Parser, Subcommand};
use crate::enforce::Backend;
#[derive(Debug, Parser)]
#[command(name = "ralon", version, about, long_about = None)]
pub struct Cli {
#[arg(short = 'C', long = "dir", global = true, value_name = "DIR")]
pub directory: Option<PathBuf>,
#[command(subcommand)]
pub command: Command,
}
#[derive(Debug, Subcommand)]
pub enum Command {
Init {
#[arg(long)]
force: bool,
},
Check {
#[arg(value_name = "PATH")]
paths: Vec<PathBuf>,
},
Status,
Run {
#[arg(long, value_enum, default_value_t = Backend::Auto)]
backend: Backend,
#[arg(long)]
dry_run: bool,
#[arg(short, long)]
quiet: bool,
#[arg(
value_name = "COMMAND",
required = true,
trailing_var_arg = true,
allow_hyphen_values = true
)]
command: Vec<OsString>,
},
}