feat: initial cli and config

This commit is contained in:
2026-08-22 19:26:47 +05:00
parent b2edfb975d
commit 1a332a6bb2
6 changed files with 998 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
use std::path::PathBuf;
use clap::{ArgGroup, Parser};
/// Deploy hobby projects from a local PC to a VPS over SSH.
#[derive(Debug, Parser)]
#[command(name = "xboctploy", version, about)]
#[command(group = ArgGroup::new("target").required(true).args(["project", "list"]))]
pub struct Cli {
/// Project name from deploy.toml
pub project: Option<String>,
/// Explicit path to the config file
#[arg(long, value_name = "PATH")]
pub config: Option<PathBuf>,
/// Print planned steps without executing anything
#[arg(long)]
pub dry_run: bool,
/// List configured projects and exit
#[arg(long)]
pub list: bool,
}