use clap::Parser;
use std::path::PathBuf;
#[derive(Parser)]
#[command(name = "syncbox")]
#[command(about = "Sync files between directories", long_about = None)]
pub struct Args {
#[command(subcommand)]
pub command: Command,
}
#[derive(clap::Subcommand)]
pub enum Command {
Sync {
source: PathBuf,
target: PathBuf,
#[arg(long)]
dry_run: bool,
#[arg(long)]
checksum: bool,
#[arg(long)]
delete: bool,
#[arg(long, value_name = "PATTERN")]
exclude: Vec<String>,
#[arg(long, value_name = "PATTERN", alias = "delete-ignore")]
delete_exclude: Vec<String>,
#[arg(long)]
detail: bool,
},
Run {
name: String,
#[arg(long, default_value = "syncbox.toml")]
config: PathBuf,
#[arg(long)]
dry_run: bool,
#[arg(long)]
checksum: bool,
#[arg(long)]
detail: bool,
},
Watch {
name: String,
#[arg(long, default_value = "syncbox.toml")]
config: PathBuf,
#[arg(long, default_value = "500")]
delay: u64,
#[arg(long)]
dry_run: bool,
#[arg(long)]
checksum: bool,
#[arg(long)]
detail: bool,
},
}