Merge pull request #81104 from bb2020/transmission

nixos/transmission: fix startup directory creation
This commit is contained in:
Lassulus 2020-05-22 11:23:17 +02:00 committed by GitHub
commit 79f41b296c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -11,7 +11,7 @@ let
downloadDir = "${homeDir}/Downloads"; downloadDir = "${homeDir}/Downloads";
incompleteDir = "${homeDir}/.incomplete"; incompleteDir = "${homeDir}/.incomplete";
settingsDir = "${homeDir}/.config/transmission-daemon"; settingsDir = "${homeDir}/config";
settingsFile = pkgs.writeText "settings.json" (builtins.toJSON fullSettings); settingsFile = pkgs.writeText "settings.json" (builtins.toJSON fullSettings);
# for users in group "transmission" to have access to torrents # for users in group "transmission" to have access to torrents
@ -20,12 +20,6 @@ let
preStart = pkgs.writeScript "transmission-pre-start" '' preStart = pkgs.writeScript "transmission-pre-start" ''
#!${pkgs.runtimeShell} #!${pkgs.runtimeShell}
set -ex set -ex
for DIR in "${homeDir}" "${settingsDir}" "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"; do
mkdir -p "$DIR"
done
chmod 755 "${homeDir}"
chmod 700 "${settingsDir}"
chmod ${downloadDirPermissions} "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"
cp -f ${settingsFile} ${settingsDir}/settings.json cp -f ${settingsFile} ${settingsDir}/settings.json
''; '';
in in
@ -110,6 +104,13 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.tmpfiles.rules = [
"d '${homeDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
"d '${settingsDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
"d '${fullSettings.download-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
"d '${fullSettings.incomplete-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
];
systemd.services.transmission = { systemd.services.transmission = {
description = "Transmission BitTorrent Service"; description = "Transmission BitTorrent Service";
after = [ "network.target" ] ++ optional apparmor "apparmor.service"; after = [ "network.target" ] ++ optional apparmor "apparmor.service";