You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
multihook/src/main.rs

46 lines
1.1 KiB
Rust

use std::path::{Path, PathBuf};
use utils::logging::init_logger;
use utils::settings::get_settings;
use crate::server::HookServer;
mod server;
pub(crate) mod utils;
#[cfg(not(feature = "singlethreaded"))]
#[tokio::main]
async fn main() {
init_and_start().await
}
#[cfg(feature = "singlethreaded")]
#[tokio::main(flavor = "current_thread")]
async fn main() {
init_and_start().await
}
async fn init_and_start() {
init_logger();
let data_dir = dirs::data_dir()
.map(|d| d.join("multihook"))
.unwrap_or(PathBuf::from("."));
if !Path::new(&data_dir).exists() {
std::fs::create_dir(data_dir).expect("Failed to create data dir");
}
let settings = get_settings();
let mut server = HookServer::new();
for (name, endpoint) in &settings.endpoints {
log::info!("Adding endpoint '{}' with path '{}'", name, &endpoint.path);
server.add_hook(endpoint.path.clone(), endpoint.into())
}
let address = settings
.server
.address
.clone()
.unwrap_or(String::from("127.0.0.1:8080"));
server.start(&address).await
}