use clap::{Parser, Subcommand};
use std::path::PathBuf;
#[derive(Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
#[arg(short, long, default_value = "/etc/pupoxide")]
pub config: PathBuf,
}
#[derive(Subcommand)]
pub enum Commands {
Run {
#[arg(short, long)]
file: PathBuf,
#[arg(short, long)]
module_path: Option<PathBuf>,
#[arg(long, default_value = "false")]
dry_run: bool,
},
Apply {
#[arg(short, long)]
environment: String,
#[arg(long, default_value = "false")]
dry_run: bool,
},
Master {
#[arg(short, long, default_value = "8080")]
port: u16,
},
Agent {
#[arg(short, long)]
server: String,
#[arg(short, long)]
node: String,
#[arg(short, long)]
#[arg(short, long)]
environment: String,
#[arg(long, default_value = "false")]
dry_run: bool,
},
Rollback {
#[arg(short, long)]
transaction_id: Option<String>,
},
}