summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorCorey O'Connor <coreyoconnor@gmail.com>2018-03-18 09:25:19 -0700
committerBjørn Forsman <bjorn.forsman@gmail.com>2018-04-05 22:07:49 +0200
commit9eec034d7596bc40a3c346db545d24747fa4e29e (patch)
treed538949b32edbe9be9b090175ce87ce0d9a33a10 /nixos/modules/services
parentf55a6ab844b59879ba1874a0c3bf3f14cca21ba5 (diff)
downloadnixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar.gz
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar.bz2
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar.lz
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar.xz
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.tar.zst
nixlib-9eec034d7596bc40a3c346db545d24747fa4e29e.zip
nixos/transmission: refactor preStart into script
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/torrent/transmission.nix14
1 files changed, 11 insertions, 3 deletions
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 1cf85af2a06c..d23eebb388e5 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -21,6 +21,16 @@ let
 
   # for users in group "transmission" to have access to torrents
   fullSettings = { umask = 2; download-dir = downloadDir; incomplete-dir = incompleteDir; } // cfg.settings;
+
+  preStart = pkgs.writeScript "transmission-pre-start" ''
+    #!${pkgs.runtimeShell}
+    set -ex
+    for DIR in ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir}; do
+      mkdir -p "$DIR"
+      chmod 770 "$DIR"
+    done
+    cp -f ${settingsFile} ${settingsDir}/settings.json
+  '';
 in
 {
   options = {
@@ -89,9 +99,7 @@ in
 
       # 1) Only the "transmission" user and group have access to torrents.
       # 2) Optionally update/force specific fields into the configuration file.
-      serviceConfig.ExecStartPre = ''
-          ${pkgs.runtimeShell} -c "mkdir -p ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && chmod 770 ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && rm -f ${settingsDir}/settings.json && cp -f ${settingsFile} ${settingsDir}/settings.json"
-      '';
+      serviceConfig.ExecStartPre = preStart;
       serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
       serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
       serviceConfig.User = "transmission";