summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/torrent
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-08-28 08:26:42 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-08-28 08:26:42 +0200
commit5061fe0c2c7743370e1d379d6fa60eed26ff1470 (patch)
tree4a4ee79a6e0694d3c7ad6fbeff33343d83458e6c /nixos/modules/services/torrent
parenta2538606e3115e16db2e5075ecf37b886ad64ede (diff)
parent98640fd48212f8e6552517f667bba1901f5936d4 (diff)
Merge staging-next into staging
Diffstat (limited to 'nixos/modules/services/torrent')
-rw-r--r--nixos/modules/services/torrent/transmission.nix36
1 files changed, 27 insertions, 9 deletions
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index f544928fb6b1..a94a471361ef 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -84,6 +84,18 @@ in
The directory where transmission will create files.
'';
};
+
+ user = mkOption {
+ type = types.str;
+ default = "transmission";
+ description = "User account under which Transmission runs.";
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "transmission";
+ description = "Group account under which Transmission runs.";
+ };
};
};
@@ -99,7 +111,8 @@ in
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";
+ serviceConfig.User = cfg.user;
+ serviceConfig.Group = cfg.group;
# NOTE: transmission has an internal umask that also must be set (in settings.json)
serviceConfig.UMask = "0002";
};
@@ -107,14 +120,19 @@ in
# It's useful to have transmission in path, e.g. for remote control
environment.systemPackages = [ pkgs.transmission ];
- users.groups.transmission.gid = config.ids.gids.transmission;
- users.users.transmission = {
- group = "transmission";
- uid = config.ids.uids.transmission;
- description = "Transmission BitTorrent user";
- home = homeDir;
- createHome = true;
- };
+ users.users = optionalAttrs (cfg.user == "transmission") (singleton
+ { name = "transmission";
+ group = cfg.group;
+ uid = config.ids.uids.transmission;
+ description = "Transmission BitTorrent user";
+ home = homeDir;
+ createHome = true;
+ });
+
+ users.groups = optionalAttrs (cfg.group == "transmission") (singleton
+ { name = "transmission";
+ gid = config.ids.gids.transmission;
+ });
# AppArmor profile
security.apparmor.profiles = mkIf apparmor [