use clap::{Parser, Subcommand};
use crate::utils::parse_pull_request_id;
#[derive(Parser)]
#[command(version, about, subcommand_negates_reqs = true)]
pub struct Cli {
#[clap(required(true), value_parser = parse_pull_request_id)]
pub pull_request: Option<u64>,
#[command(subcommand)]
pub command: Option<Commands>,
#[clap(long, short, env = "GITHUB_TOKEN")]
pub token: Option<String>,
}
#[derive(Subcommand)]
pub enum Commands {
Add {
#[clap(required(true), value_parser = parse_pull_request_id)]
pull_requests: Vec<u64>,
},
Remove {
#[clap(required_unless_present("all"), value_parser = parse_pull_request_id)]
pull_requests: Vec<u64>,
#[clap(long, conflicts_with = "pull_requests")]
all: bool,
#[clap(short, long, exclusive = true)]
interactive: bool,
},
List {
#[clap(long)]
json: bool,
},
Check {},
}