nixos/pyload: add user/group options

Changed files
+23 -4
nixos
modules
services
networking
+23 -4
nixos/modules/services/networking/pyload.nix
···
description = "Directory to store downloads.";
};
+
user = mkOption {
+
type = types.str;
+
default = "pyload";
+
description = "User under which pyLoad runs, and which owns the download directory.";
+
};
+
+
group = mkOption {
+
type = types.str;
+
default = "pyload";
+
description = "Group under which pyLoad runs, and which owns the download directory.";
+
};
+
credentialsFile = mkOption {
type = with types; nullOr path;
default = null;
···
config = lib.mkIf cfg.enable {
systemd.tmpfiles.settings.pyload = {
-
${cfg.downloadDirectory}.d = { };
+
${cfg.downloadDirectory}.d = { inherit (cfg) user group; };
};
systemd.services.pyload = {
···
cfg.downloadDirectory
];
-
User = "pyload";
-
Group = "pyload";
-
DynamicUser = true;
+
User = cfg.user;
+
Group = cfg.group;
EnvironmentFile = lib.optional (cfg.credentialsFile != null) cfg.credentialsFile;
···
];
};
};
+
+
users.users.pyload = lib.mkIf (cfg.user == "pyload") {
+
isSystemUser = true;
+
group = cfg.group;
+
home = stateDir;
+
};
+
+
users.groups.pyload = lib.mkIf (cfg.group == "pyload") { };
};
}