use clap::{Parser, Subcommand};
use std::path::PathBuf;
#[derive(Parser)]
#[command(
author,
version,
about = "文件处理工具集",
long_about = "一个用于文件复制和 JSON 处理的命令行工具"
)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
#[arg(long = "ignore-dirs", global = true, value_delimiter = ' ')]
pub ignore_dirs: Option<Vec<String>>,
}
#[derive(Subcommand)]
pub enum Commands {
Copy {
#[arg(short, long)]
from: PathBuf,
#[arg(short, long)]
to: PathBuf,
#[arg(long, default_value_t = false)]
skip_exist: bool,
},
ModifyJson {
#[arg(short, long)]
from: PathBuf,
#[arg(short, long)]
to: PathBuf,
#[arg(short = 'p', long)]
json_path: String,
#[arg(long, default_value_t = false)]
skip_exist: bool,
},
}