Skip to main content

harmont_cli/cli/
init.rs

1use std::path::PathBuf;
2
3use clap::{Parser, ValueEnum};
4
5#[derive(Debug, Clone, Copy, ValueEnum)]
6pub enum TemplateKind {
7    Cmake,
8    Elixir,
9    Nextjs,
10    Js,
11    Rust,
12    Zig,
13    Python,
14}
15
16#[derive(Debug, Clone, Parser)]
17pub struct InitArgs {
18    /// Project template.
19    #[arg(short, long)]
20    pub template: Option<TemplateKind>,
21
22    /// Target directory.
23    #[arg(short, long, default_value = ".")]
24    pub dir: PathBuf,
25
26    /// Overwrite existing .hm/ directory.
27    #[arg(long)]
28    pub force: bool,
29}