use clap::Parser;

#[derive(Debug, Parser)]
#[command(name = "port-killer")]
#[command(version)]
#[command(about = "A safe, cross-platform port killer for developers.")]
pub struct Cli {
    /// Ports to inspect or kill.
    #[arg(value_name = "PORT")]
    pub ports: Vec<u16>,

    /// Kill without asking for confirmation.
    #[arg(short = 'y', long)]
    pub yes: bool,

    /// Show what would be killed without killing.
    #[arg(long)]
    pub dry_run: bool,

    /// Only list occupied ports.
    #[arg(short = 'l', long)]
    pub list: bool,

    /// Output machine-readable JSON.
    #[arg(long)]
    pub json: bool,

    /// Scan common development ports.
    #[arg(long)]
    pub dev: bool,

    /// Use a stronger kill signal where supported.
    #[arg(short = 'f', long)]
    pub force: bool,
}

pub const DEFAULT_DEV_PORTS: &[u16] = &[3000, 3001, 4200, 5000, 5173, 8000, 8080, 8888];
