Files
unshell/unshell-server/src/main.rs
T
2025-12-17 10:38:37 -07:00

46 lines
1.2 KiB
Rust

use std::{error::Error, path::PathBuf};
use unshell_server::{Server, start_api};
use clap::Parser;
use unshell_server::{DATABASE_NAME, DEFAULT_HOST};
/// A fictional versioning CLI
#[derive(Debug, Parser)]
#[command(name = "unshell-server")]
#[command(about = "UnShell server", long_about = None)]
pub struct Args {
/// Host to listen on
#[clap(long, default_value_t = DEFAULT_HOST.clone())]
host: String,
/// Port to listen
#[arg(short, long, default_value_t = 3000)]
port: usize,
/// Name of database folder
#[clap(short, long, default_value_t = DATABASE_NAME.clone())]
database_name: String,
/// Load config from path
#[clap(short, long, value_parser)]
pub config: Vec<PathBuf>,
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let args = Args::parse();
unshell_lib::logger::PrettyLogger::init_output(|message| {
if let Ok(json) = serde_json::to_string(message) {
unshell_server::logger::Logger::log(json);
}
});
let database = Server::new(args.config, args.database_name)?;
start_api(&format!("{}:{}", args.host, args.port), database).await;
Ok(())
}