diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 275d747b..a19abfa2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -38,7 +38,15 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { REMOVE_ENV_RUST_LIB_BACKTRACE.store(true, Ordering::Relaxed); } - IS_SYSTEMD_SERVICE.store(env::var_os("NOTIFY_SOCKET").is_some(), Ordering::Relaxed); + if env::var_os("NOTIFY_SOCKET").is_some() { + IS_SYSTEMD_SERVICE.store(true, Ordering::Relaxed); + + #[cfg(not(feature = "systemd"))] + warn!( + "running as a systemd service, but systemd support is compiled out. \ + Are you sure you did not forget to set `--features systemd`?" + ); + } let directives = env::var("RUST_LOG").unwrap_or_else(|_| "niri=debug".to_owned()); let env_filter = EnvFilter::builder().parse_lossy(directives); @@ -249,11 +257,16 @@ fn import_environment() { ] .join(" "); + #[cfg(feature = "systemd")] + let systemctl = format!("systemctl --user import-environment {variables} && "); + #[cfg(not(feature = "systemd"))] + let systemctl = String::new(); + let rv = Command::new("/bin/sh") .args([ "-c", &format!( - "systemctl --user import-environment {variables} && \ + "{systemctl}\ hash dbus-update-activation-environment 2>/dev/null && \ dbus-update-activation-environment {variables}" ), @@ -273,7 +286,7 @@ fn import_environment() { } }, Err(err) => { - warn!("error spawning shell to import environment into systemd: {err:?}"); + warn!("error spawning shell to import environment: {err:?}"); } } } |
