44 lines
1.1 KiB
Rust
44 lines
1.1 KiB
Rust
use acldb::{Server, Error};
|
|
use std::env;
|
|
use log::{info, error, LevelFilter};
|
|
|
|
#[actix_web::main]
|
|
async fn main() -> Result<(), Error> {
|
|
// Initialize logger
|
|
env_logger::Builder::new()
|
|
.filter_level(LevelFilter::Info)
|
|
.init();
|
|
|
|
info!("Starting ACLDB server...");
|
|
|
|
// Parse command line arguments
|
|
let args: Vec<String> = env::args().collect();
|
|
let host = args.get(1).map_or("127.0.0.1".to_string(), |s| s.clone());
|
|
let port = args.get(2)
|
|
.map_or(8080, |s| s.parse::<u16>().unwrap_or(8080));
|
|
|
|
// Create server configuration
|
|
let config = acldb::server::ServerConfig {
|
|
host,
|
|
port,
|
|
};
|
|
|
|
// Create and start server
|
|
info!("Server listening on {}:{}", config.host, config.port);
|
|
info!("API documentation available at http://{}:{}/redoc", config.host, config.port);
|
|
|
|
let server = Server::new(config);
|
|
|
|
// Start the server
|
|
match server.start().await {
|
|
Ok(_) => {
|
|
info!("Server stopped");
|
|
Ok(())
|
|
}
|
|
Err(e) => {
|
|
error!("Server error: {}", e);
|
|
Err(Error::IOError(e))
|
|
}
|
|
}
|
|
}
|