use clap::Parser;
use std::path::PathBuf;
#[derive(Parser, Debug, Clone)]
#[command(name = "slotgate")]
pub struct GateArgs {
#[arg(long, default_value_t = 3)]
pub max_parallel: usize,
#[arg(long, default_value_t = 30000)]
pub port_range_base: u16,
#[arg(long, default_value_t = 100)]
pub port_range_size: u16,
#[arg(long, default_value = "PORT_RANGE_BASE")]
pub port_env_base: String,
#[arg(long, default_value = "PORT_RANGE_COUNT")]
pub port_env_count: String,
#[arg(long, default_value_t = 120)]
pub timeout_secs: u64,
#[arg(long, default_value = "logs/slotgate")]
pub log_dir: PathBuf,
#[arg(long)]
pub program: String,
#[arg(long, value_delimiter = ',', default_value = "")]
pub program_args: Vec<String>,
#[arg(long, value_delimiter = ',')]
pub jobs: Vec<String>,
#[arg(long)]
pub jobs_file: Option<PathBuf>,
#[arg(long)]
pub pre_build_program: Option<String>,
#[arg(long, value_delimiter = ',', default_value = "")]
pub pre_build_args: Vec<String>,
#[arg(long)]
pub pre_build_target_name: Option<String>,
}