From 21da280c3d07b2940898e8438178455337467b3e Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Mon, 19 Aug 2024 11:04:17 -0700 Subject: [PATCH] Determinate fixups (#1102) * fixup: add Service= to determinate-nixd.socket * fixup: clean up logic around "if enabled, disable; if active, stop" for sockets and services --- .../nixd.determinate-nixd.socket | 1 + src/action/common/configure_init_service.rs | 33 +++++++++++-------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/action/common/configure_determinate_nixd_init_service/nixd.determinate-nixd.socket b/src/action/common/configure_determinate_nixd_init_service/nixd.determinate-nixd.socket index 052a5b000..3a1bd3dc5 100644 --- a/src/action/common/configure_determinate_nixd_init_service/nixd.determinate-nixd.socket +++ b/src/action/common/configure_determinate_nixd_init_service/nixd.determinate-nixd.socket @@ -8,6 +8,7 @@ ConditionPathIsReadWrite=/nix/var/determinate [Socket] FileDescriptorName=determinate-nixd.socket ListenStream=/nix/var/determinate/determinate-nixd.socket +Service=nix-daemon.service [Install] WantedBy=sockets.target diff --git a/src/action/common/configure_init_service.rs b/src/action/common/configure_init_service.rs index ec66e24a6..dfdbc078a 100644 --- a/src/action/common/configure_init_service.rs +++ b/src/action/common/configure_init_service.rs @@ -335,26 +335,33 @@ impl Action for ConfigureInitService { // The goal state is the `socket` enabled and active, the service not enabled and stopped (it activates via socket activation) let mut any_socket_was_active = false; for SocketFile { name, .. } in socket_files.iter() { + let is_active = is_active(name).await.map_err(Self::error)?; + if is_enabled(name).await.map_err(Self::error)? { - disable(name, false).await.map_err(Self::error)?; - } - if is_active(name).await.map_err(Self::error)? { + disable(name, is_active).await.map_err(Self::error)?; + } else if is_active { stop(name).await.map_err(Self::error)?; - any_socket_was_active = true; }; + + if is_active { + any_socket_was_active = true; + } } - if is_enabled("nix-daemon.service") - .await - .map_err(Self::error)? { - let now = is_active("nix-daemon.service").await.map_err(Self::error)?; - disable("nix-daemon.service", now) + let is_active = is_active("nix-daemon.service").await.map_err(Self::error)?; + + if is_enabled("nix-daemon.service") .await - .map_err(Self::error)?; - } else if is_active("nix-daemon.service").await.map_err(Self::error)? { - stop("nix-daemon.service").await.map_err(Self::error)?; - }; + .map_err(Self::error)? + { + disable("nix-daemon.service", is_active) + .await + .map_err(Self::error)?; + } else if is_active { + stop("nix-daemon.service").await.map_err(Self::error)?; + }; + } tracing::trace!(src = TMPFILES_SRC, dest = TMPFILES_DEST, "Symlinking"); if !Path::new(TMPFILES_DEST).exists() {