Files
owlry/crates/owlry-core/src/main.rs

40 lines
1.0 KiB
Rust

use log::{info, warn};
use owlry_core::paths;
use owlry_core::server::Server;
fn main() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("warn")).init();
let sock = paths::socket_path();
info!("Starting owlry-core daemon...");
// Ensure the socket parent directory exists
if let Err(e) = paths::ensure_parent_dir(&sock) {
eprintln!("Failed to create socket directory: {e}");
std::process::exit(1);
}
let server = match Server::bind(&sock) {
Ok(s) => s,
Err(e) => {
eprintln!("Failed to start owlry-core: {e}");
std::process::exit(1);
}
};
// Graceful shutdown on SIGTERM/SIGINT
let sock_cleanup = sock.clone();
if let Err(e) = ctrlc::set_handler(move || {
let _ = std::fs::remove_file(&sock_cleanup);
std::process::exit(0);
}) {
warn!("Failed to set signal handler: {}", e);
}
if let Err(e) = server.run() {
eprintln!("Server error: {e}");
std::process::exit(1);
}
}