mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
62 lines
1.7 KiB
Nix
62 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.options) mkOption mkEnableOption;
|
|
inherit (lib.modules) mkIf mkMerge;
|
|
cfg = config.kyuuto;
|
|
in {
|
|
options.kyuuto = with lib.types; {
|
|
setup = mkEnableOption "directory and permission setup";
|
|
mountDir = mkOption {
|
|
type = path;
|
|
default = "/mnt/kyuuto-media";
|
|
};
|
|
libraryDir = mkOption {
|
|
type = path;
|
|
default = cfg.mountDir + "/library";
|
|
};
|
|
transferDir = mkOption {
|
|
type = path;
|
|
default = cfg.mountDir + "/transfer";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
systemd.tmpfiles.rules = mkIf cfg.setup [
|
|
"d ${cfg.transferDir} 3775 root kyuuto"
|
|
"d ${cfg.libraryDir} 3775 root kyuuto"
|
|
"d ${cfg.libraryDir}/unsorted 3775 root kyuuto"
|
|
"d ${cfg.libraryDir}/music 7775 sonarr kyuuto"
|
|
"d ${cfg.libraryDir}/anime 7775 sonarr kyuuto"
|
|
"d ${cfg.libraryDir}/tv 7775 sonarr kyuuto"
|
|
"d ${cfg.libraryDir}/movies 7775 radarr kyuuto"
|
|
];
|
|
|
|
users = let
|
|
mapId = id: if config.proxmoxLXC.privileged or true then 100000 + id else id;
|
|
mkDummyUsers = {
|
|
name,
|
|
group ? name,
|
|
enable ? !config.services.${serviceName}.enable, serviceName ? name,
|
|
uid ? config.ids.uids.${name},
|
|
gid ? config.ids.gids.${group}
|
|
}: mkIf enable {
|
|
users.${name} = {
|
|
group = mkIf (group != null) group;
|
|
uid = mapId uid;
|
|
isSystemUser = true;
|
|
};
|
|
groups.${group} = {
|
|
gid = mapId gid;
|
|
};
|
|
};
|
|
in mkMerge [
|
|
(mkDummyUsers { name = "deluge"; })
|
|
(mkDummyUsers { name = "radarr"; })
|
|
(mkDummyUsers { name = "sonarr"; })
|
|
(mkDummyUsers { name = "lidarr"; })
|
|
];
|
|
};
|
|
}
|