From 3babc8801c0d09b7868be9be7751f7cfdf32c8bb Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 18 Apr 2020 00:45:01 -0400 Subject: make daemonizing optional --- src/bin/rbw-agent/main.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/bin/rbw-agent/main.rs b/src/bin/rbw-agent/main.rs index 622778e..a673c88 100644 --- a/src/bin/rbw-agent/main.rs +++ b/src/bin/rbw-agent/main.rs @@ -6,12 +6,14 @@ mod daemon; mod sock; async fn tokio_main( - startup_ack: crate::daemon::StartupAck, + startup_ack: Option, ) -> anyhow::Result<()> { let listener = crate::sock::listen().context("failed to listen on socket")?; - startup_ack.ack()?; + if let Some(startup_ack) = startup_ack { + startup_ack.ack()?; + } let mut agent = crate::agent::Agent::new()?; agent.run(listener).await?; @@ -25,7 +27,17 @@ fn real_main() -> anyhow::Result<()> { ) .init(); - let startup_ack = daemon::daemonize().context("failed to daemonize")?; + let no_daemonize = if let Some(arg) = std::env::args().nth(1) { + arg == "--no-daemonize" + } else { + false + }; + + let startup_ack = if no_daemonize { + None + } else { + Some(daemon::daemonize().context("failed to daemonize")?) + }; let (w, r) = std::sync::mpsc::channel(); // can't use tokio::main because we need to daemonize before starting the -- cgit v1.2.3-54-g00ecf