use clap::Parser;
#[derive(Parser, Debug, Clone)]
pub struct CopyFlags {
#[clap(short, long, value_parser, default_value_t = false)]
pub watch: bool,
}
#[derive(Parser, Clone, Debug)]
pub struct InitFlags {
#[clap(short, long, value_parser, default_value_t = false)]
pub json: bool,
#[clap(short, long, value_parser, default_value_t = false)]
pub read_env: bool,
#[clap(long, value_parser)]
pub workflows: Option<String>,
}
#[derive(clap::Subcommand, Clone, Debug)]
pub enum Action {
Clean,
Init(InitFlags),
Copy,
List,
}
#[derive(Parser, Clone, Debug)]
#[clap(author, version, about, name = "hawk")]
pub struct Args {
#[clap(short, global = true, long, value_parser, value_hint = clap::ValueHint::FilePath)]
pub config: Option<String>,
#[clap(subcommand)]
pub action: Option<Action>,
#[clap(long, value_parser, global = true)]
pub scope: Option<String>,
#[clap(global = true, short, long, value_parser, default_value_t = false)]
pub watch: bool,
}