use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "rustminidb")]
#[command(about = "A lightweight embedded database with native REST API")]
#[command(version = "0.1.0")]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand)]
pub enum Commands {
Serve {
#[arg(long, default_value = "0.0.0.0")]
host: String,
#[arg(long, default_value_t = 8080)]
port: u16,
#[arg(long, default_value = "data.db")]
db: String,
#[arg(long, default_value_t = 100)]
max_connections: u32,
#[arg(long)]
api_token: Option<String>,
},
Shell {
#[arg(long, default_value = "data.db")]
db: String,
},
Exec {
#[arg(long, default_value = "data.db")]
db: String,
sql: String,
#[arg(long, default_value = "table")]
format: String,
},
Init {
#[arg(long, default_value = "data.db")]
db: String,
},
Export {
#[arg(long, default_value = "data.db")]
db: String,
#[arg(long)]
output: Option<String>,
#[arg(long)]
table: Option<String>,
#[arg(long, default_value_t = true)]
data: bool,
#[arg(long, default_value_t = true)]
create: bool,
},
Version,
}