f66a36d0f4
Signed-off-by: Catty Steve <4795515+Catty2014@user.noreply.gitee.com>
46 lines
1.3 KiB
Rust
46 lines
1.3 KiB
Rust
use log::info;
|
|
use actix_web::{web, App, HttpServer};
|
|
|
|
mod config;
|
|
mod tls;
|
|
mod error;
|
|
mod handler;
|
|
mod init;
|
|
mod state;
|
|
|
|
|
|
#[actix_web::main]
|
|
async fn main() -> Result<(), ()> {
|
|
env_logger::init();
|
|
info!("Starting workshop-agent...");
|
|
let config = config::ServerConfig::init().unwrap();
|
|
let token = if config.is_tls_enabled() {
|
|
None
|
|
} else {
|
|
let _token = init::generate_token();
|
|
println!("Generated token: {}", _token);
|
|
Some(_token)
|
|
};
|
|
let appstate = web::Data::new(state::AppState {
|
|
use_tls: config.is_tls_enabled(),
|
|
token,
|
|
});
|
|
let mut server = HttpServer::new(move || App::new()
|
|
.app_data(appstate.clone())
|
|
.service(handler::index)
|
|
.service(handler::ping)
|
|
.service(handler::init));
|
|
if config.is_tls_enabled() {
|
|
let tls_certs_file = config.tls.clone().unwrap().cert;
|
|
let tls_key_file = config.tls.clone().unwrap().key;
|
|
let tls_config = tls::load_rustls_config(&tls_certs_file, &tls_key_file).unwrap();
|
|
info!("Configuring TLS...");
|
|
server = server.bind_rustls_0_23(config.bind_address(), tls_config).unwrap();
|
|
}
|
|
else {
|
|
server = server.bind(config.bind_address()).unwrap();
|
|
}
|
|
let _ = server.run().await;
|
|
Ok(())
|
|
}
|