use std::path::PathBuf;
use clap::{Args, ValueEnum};
use serde::{Deserialize, Serialize};
#[derive(Args, Debug, Clone)]
#[command(
after_help = "Examples:\n tokmd init --template rust\n tokmd init --non-interactive --template node --force"
)]
pub struct InitArgs {
#[arg(long, value_name = "DIR", default_value = ".")]
pub dir: PathBuf,
#[arg(long)]
pub force: bool,
#[arg(long)]
pub print: bool,
#[arg(long, value_enum, default_value_t = InitProfile::Default)]
pub template: InitProfile,
#[arg(long)]
pub non_interactive: bool,
}
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum InitProfile {
Default,
Rust,
Node,
Mono,
Python,
Go,
Cpp,
}