use camino::Utf8PathBuf;
use clap::{Args, Subcommand};
use super::profile_flags::ProfileFlags;
#[derive(Debug, Args)]
#[expect(
clippy::struct_excessive_bools,
reason = "each field is one clap flag, and an opt-in capability's flag is a boolean by design; a state machine would hide the command line this struct describes"
)]
pub struct StageArgs {
#[command(subcommand)]
pub action: Option<StageAction>,
#[command(flatten)]
pub profile: ProfileFlags,
#[arg(long, default_value = ".")]
pub target: Utf8PathBuf,
#[arg(long, alias = "nix")]
pub nix_packaging: bool,
#[arg(long)]
pub reporting_policy: bool,
#[arg(long)]
pub scorecard: bool,
#[arg(long, value_name = "PROVIDER")]
pub code_scanning: Option<String>,
#[arg(long)]
pub output: Option<Utf8PathBuf>,
#[arg(long)]
pub json: bool,
}
#[derive(Debug, Subcommand)]
pub enum StageAction {
Clean {
path: Utf8PathBuf,
#[arg(long)]
json: bool,
},
}