use serde::Serialize;
use std::path::PathBuf;
use clap::{builder::PossibleValuesParser, Parser, ValueHint};
mod generate_keypair;
#[derive(Parser, Debug, Serialize, Clone)]
#[command(author, version, about, long_about = None)]
pub struct CliArgs {
#[arg(short, long, value_hint = ValueHint::DirPath)]
pub config: Option<PathBuf>,
#[serde(rename = "log-level")]
#[arg(short, long, value_parser = PossibleValuesParser::new(["info", "debug", "info", "warn", "error", "trace"]))]
pub log_level: Option<String>,
#[arg(short, long)]
pub port: Option<u16>,
#[arg(long)]
pub host: bool,
#[arg(short, long, value_parser = PossibleValuesParser::new(["run", "revert"]))]
pub migrate: Option<String>,
#[arg(short, long)]
pub generate_keypair: bool,
#[arg(short, long)]
pub watch: bool,
}
impl CliArgs {
pub fn handle_flags(&self) -> Result<(), Box<dyn std::error::Error>> {
self.generate_keypair()?;
Ok(())
}
}