Files
s3bot/src/server/main.rs
2023-02-20 01:15:47 +00:00

29 lines
851 B
Rust

use std::sync::Arc;
use tokio::sync::RwLock;
use actix_web::{dev::Server, web::Data, App, HttpServer};
use crate::args::ServerConfig;
use super::routes::{healthcheck, index, login};
pub fn create(args: ServerConfig, token: Arc<RwLock<Option<String>>>) -> anyhow::Result<Server> {
let addr = (args.host.clone(), args.port);
let server = HttpServer::new(move || {
App::new()
.wrap(actix_web::middleware::Logger::new(
"\"%r\" \"-\" \"%s\" \"%a\" \"%D\"",
))
.app_data(Data::new(token.clone()))
.app_data(Data::new(args.clone()))
.service(login)
.service(index)
.service(healthcheck)
.service(actix_files::Files::new("/static", args.static_dir.clone()))
})
.bind(addr)?
.workers(1)
.run();
Ok(server)
}