summaryrefslogtreecommitdiffstats
path: root/nixos/modules
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2022-12-29 13:39:01 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2023-01-04 21:45:58 +0100
commit295c552dc92ac63ff9d0a979f723c8dfa058fb5f (patch)
tree1b944d5b9901c48419eeb96ca8895aaf72703fd9 /nixos/modules
parent446d737bee93ff6dd9d10f37f5216551efd60431 (diff)
nixos/apcupsd: wrap CLI with "-f ${configFile}"
This ensures that the CLI is in sync with the service configuration. (I tried building apcupsd with --sysconfdir=/etc instead, but it wants to install stuff there at build time, so I backed out.) Fixes https://github.com/NixOS/nixpkgs/issues/208204.
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/monitoring/apcupsd.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/services/monitoring/apcupsd.nix b/nixos/modules/services/monitoring/apcupsd.nix
index d4216b44cdc8..666479c78a84 100644
--- a/nixos/modules/services/monitoring/apcupsd.nix
+++ b/nixos/modules/services/monitoring/apcupsd.nix
@@ -62,6 +62,21 @@ let
);
+ # Ensure the CLI uses our generated configFile
+ wrappedBinaries = pkgs.runCommandLocal "apcupsd-wrapped-binaries"
+ { nativeBuildInputs = [ pkgs.makeWrapper ]; }
+ ''
+ for p in "${lib.getBin pkgs.apcupsd}/bin/"*; do
+ bname=$(basename "$p")
+ makeWrapper "$p" "$out/bin/$bname" --add-flags "-f ${configFile}"
+ done
+ '';
+
+ apcupsdWrapped = pkgs.symlinkJoin {
+ name = "apcupsd-wrapped";
+ # Put wrappers first so they "win"
+ paths = [ wrappedBinaries pkgs.apcupsd ];
+ };
in
{
@@ -138,7 +153,7 @@ in
} ];
# Give users access to the "apcaccess" tool
- environment.systemPackages = [ pkgs.apcupsd ];
+ environment.systemPackages = [ apcupsdWrapped ];
# NOTE 1: apcupsd runs as root because it needs permission to run
# "shutdown"