From 2673a9b2998eb7acb94fe8bfc937bba40dd57ea0 Mon Sep 17 00:00:00 2001 From: Ana Hobden Date: Fri, 19 May 2023 07:49:43 -0700 Subject: [PATCH] Improve WSL systemd detection (#469) * Improve WSL systemd detection * Make systemd missing in wsl an expected error * fmt * Use && instead * Make it more verbose --- src/action/common/configure_init_service.rs | 7 +++++-- src/action/mod.rs | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/action/common/configure_init_service.rs b/src/action/common/configure_init_service.rs index fec8d1e..4d301b6 100644 --- a/src/action/common/configure_init_service.rs +++ b/src/action/common/configure_init_service.rs @@ -93,8 +93,11 @@ impl ConfigureInitService { InitSystem::Systemd => { // If /run/systemd/system exists, we can be reasonably sure the machine is booted // with systemd: https://www.freedesktop.org/software/systemd/man/sd_booted.html - if !(Path::new("/run/systemd/system").exists() || which::which("systemctl").is_ok()) - { + if !Path::new("/run/systemd/system").exists() { + return Err(Self::error(ActionErrorKind::SystemdMissing)); + } + + if which::which("systemctl").is_err() { return Err(Self::error(ActionErrorKind::SystemdMissing)); } diff --git a/src/action/mod.rs b/src/action/mod.rs index 7b4f719..def8033 100644 --- a/src/action/mod.rs +++ b/src/action/mod.rs @@ -568,6 +568,7 @@ impl HasExpectedErrors for ActionErrorKind { Self::PathUserMismatch(_, _, _) | Self::PathGroupMismatch(_, _, _) | Self::PathModeMismatch(_, _, _) => Some(Box::new(self)), + Self::SystemdMissing => Some(Box::new(self)), _ => None, } }