diff options
author | Corey O'Connor <coreyoconnor@gmail.com> | 2018-03-18 09:25:19 -0700 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2018-04-05 22:07:49 +0200 |
commit | 9eec034d7596bc40a3c346db545d24747fa4e29e (patch) | |
tree | d538949b32edbe9be9b090175ce87ce0d9a33a10 /nixos/modules/services | |
parent | f55a6ab844b59879ba1874a0c3bf3f14cca21ba5 (diff) | |
download | nixlib-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.nix | 14 |
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"; |