use std::path::PathBuf;
use clap::{Parser, Subcommand, ValueEnum};
#[derive(Parser, Debug)]
#[command(name = "serverust", version, about = "serverust framework CLI")]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
}
#[derive(Subcommand, Debug)]
pub enum Command {
New {
name: String,
},
Generate {
kind: GenerateKind,
name: String,
},
Dev,
Build {
#[arg(long)]
release: bool,
},
Deploy {
#[command(subcommand)]
target: DeployTarget,
},
Info,
Openapi {
#[arg(long)]
out: PathBuf,
},
}
#[derive(Subcommand, Debug)]
pub enum DeployTarget {
Lambda {
#[arg(long, value_enum, default_value_t = Arch::Arm64)]
arch: Arch,
},
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, ValueEnum)]
pub enum Arch {
#[value(name = "arm64")]
Arm64,
#[value(name = "x86_64", alias = "x86-64")]
X86_64,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, ValueEnum)]
pub enum GenerateKind {
Resource,
Module,
Controller,
Service,
Pipe,
Guard,
Interceptor,
Filter,
}