From 8885d295bbbac9b53e7a347522d30e41d7548c88 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 14 Nov 2024 09:28:13 -0700 Subject: [PATCH] Support --no-daemon flag to prevent daemonizing --- src/lib.rs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 36defdf..efe6e5e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -82,25 +82,19 @@ pub fn desktop() -> Result<(), Box> { /// Runs application with these settings #[rustfmt::skip] pub fn main() -> Result<(), Box> { - #[cfg(all(unix, not(target_os = "redox")))] - match fork::daemon(true, true) { - Ok(fork::Fork::Child) => (), - Ok(fork::Fork::Parent(_child_pid)) => process::exit(0), - Err(err) => { - eprintln!("failed to daemonize: {:?}", err); - process::exit(1); - } - } - env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("warn")).init(); localize::localize(); let (config_handler, config) = Config::load(); + let mut daemonize = true; let mut locations = Vec::new(); for arg in env::args().skip(1) { - let location = if &arg == "--trash" { + let location = if &arg == "--no-daemon" { + daemonize = false; + continue; + } else if &arg == "--trash" { Location::Trash } else { match fs::canonicalize(&arg) { @@ -114,6 +108,18 @@ pub fn main() -> Result<(), Box> { locations.push(location); } + if daemonize { + #[cfg(all(unix, not(target_os = "redox")))] + match fork::daemon(true, true) { + Ok(fork::Fork::Child) => (), + Ok(fork::Fork::Parent(_child_pid)) => process::exit(0), + Err(err) => { + eprintln!("failed to daemonize: {:?}", err); + process::exit(1); + } + } + } + let mut settings = Settings::default(); settings = settings.theme(config.app_theme.theme()); settings = settings.size_limits(Limits::NONE.min_width(360.0).min_height(180.0));