use super::{analyze, destroy, status, up};
use clap::{ArgAction, Parser, Subcommand};
use std::path::PathBuf;
const VERSION_INFO: &str = env!("DCD_BUILD_VERSION");
#[derive(Parser, Debug)]
#[command(name = "dcd")]
#[command(about = "Docker Compose Deployment tool", long_about = None, version = VERSION_INFO)]
#[command(propagate_version = true)]
pub struct Cli {
#[arg(short = 'f', long = "file")]
pub compose_files: Vec<PathBuf>,
#[arg(short = 'e', long = "env-file")]
pub env_files: Vec<PathBuf>,
#[arg(
short = 'i',
long = "identity",
default_value = "/Users/user/.ssh/id_rsa"
)]
pub identity_file: PathBuf,
#[arg(short = 'w', long = "workdir")]
pub remote_dir: Option<PathBuf>,
#[arg(short, long, action = ArgAction::Count, global = true)]
pub verbose: u8,
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Analyze(analyze::Analyze),
Up(up::Up),
Status(status::Status),
Destroy(destroy::Destroy),
}