From 916b3f3bbea4efa5acdbfdc605d62b9eb4dfb2b5 Mon Sep 17 00:00:00 2001 From: Philip Wilk Date: Thu, 3 Jul 2025 17:16:50 +0100 Subject: [PATCH] nixos/hddtemp: allow use of command substitutions in drives option --- nixos/modules/hardware/sensor/hddtemp.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/nixos/modules/hardware/sensor/hddtemp.nix b/nixos/modules/hardware/sensor/hddtemp.nix index 4c89eac56ddf..2d7ef17f7ae9 100644 --- a/nixos/modules/hardware/sensor/hddtemp.nix +++ b/nixos/modules/hardware/sensor/hddtemp.nix @@ -9,21 +9,26 @@ let cfg = config.hardware.sensor.hddtemp; - wrapper = pkgs.writeShellScript "hddtemp-wrapper" '' + script = '' set -eEuo pipefail file=/var/lib/hddtemp/hddtemp.db - drives=(${toString (map (e: ''$(realpath ${lib.escapeShellArg e}) '') cfg.drives)}) + raw_drives="" + ${lib.concatStringsSep "\n" (map (drives: "raw_drives+=\"${drives} \"") cfg.drives)} + drives="" + for i in $raw_drives; do + drives+=" $(realpath $i)" + done cp ${pkgs.hddtemp}/share/hddtemp/hddtemp.db $file ${lib.concatMapStringsSep "\n" (e: "echo ${lib.escapeShellArg e} >> $file") cfg.dbEntries} - exec ${pkgs.hddtemp}/bin/hddtemp ${lib.escapeShellArgs cfg.extraArgs} \ + ${pkgs.hddtemp}/bin/hddtemp ${lib.escapeShellArgs cfg.extraArgs} \ --daemon \ --unit=${cfg.unit} \ --file=$file \ - ''${drives[@]} + $drives ''; in @@ -77,9 +82,9 @@ in description = "HDD/SSD temperature"; documentation = [ "man:hddtemp(8)" ]; wantedBy = [ "multi-user.target" ]; + inherit script; serviceConfig = { Type = "forking"; - ExecStart = wrapper; StateDirectory = "hddtemp"; PrivateTmp = true; ProtectHome = "tmpfs";