mod database;
mod pinentry;
mod service;
use signal_hook::consts::signal::*;
use signal_hook_tokio::Signals;
use tokio_stream::StreamExt;
#[tokio::main]
async fn main() -> zbus::Result<()> {
let root = service::Service::empty();
zbus::ConnectionBuilder::session()?
.name("org.freedesktop.Secrets")?
.serve_at("/org/freedesktop/secrets", root)?
.build()
.await?;
println!("KeyBoxen is now serving secrets!");
let mut signals = Signals::new(&[SIGTERM, SIGINT])?;
if let Some(sig) = signals.next().await {
let sig = match sig {
SIGTERM => "SIGTERM",
SIGINT => "SIGINT",
_ => unreachable!(),
}
.to_string();
println!("Exiting normally on {}.", sig);
}
zbus::Result::Ok(())
}