Private
Public Access
1
0
Files
Kordophone/kordophoned/src/main.rs

55 lines
1.2 KiB
Rust
Raw Normal View History

2025-02-11 23:15:24 -08:00
mod dbus;
mod daemon;
use std::future;
use std::sync::{Arc, Mutex};
2025-02-11 23:15:24 -08:00
use log::LevelFilter;
2025-02-12 00:32:44 -08:00
use daemon::Daemon;
use dbus::endpoint::Endpoint as DbusEndpoint;
use dbus::interface;
use dbus::server_impl::ServerImpl;
2025-02-12 00:32:44 -08:00
2025-02-11 23:15:24 -08:00
fn initialize_logging() {
env_logger::Builder::from_default_env()
.filter_level(LevelFilter::Info)
.format_timestamp_secs()
.init();
}
#[tokio::main]
async fn main() {
initialize_logging();
// Create the daemon
let daemon = Arc::new(
Mutex::new(
Daemon::new()
.map_err(|e| {
log::error!("Failed to start daemon: {}", e);
std::process::exit(1);
})
.unwrap()
)
);
// Create the server implementation
let server = ServerImpl::new(daemon);
// Register DBus interfaces with endpoint
let endpoint = DbusEndpoint::new(server.clone());
endpoint.register(
interface::NAME,
interface::OBJECT_PATH,
|cr| {
vec![
interface::register_net_buzzert_kordophone_repository(cr),
interface::register_net_buzzert_kordophone_settings(cr)
]
}
).await;
2025-02-11 23:15:24 -08:00
future::pending::<()>().await;
unreachable!()
}