38 lines
1,010 B
Nix
38 lines
1,010 B
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkMerge;
|
|
inherit (builtins) mapAttrs;
|
|
inherit (config.ooknet.server) ookflix;
|
|
inherit (config.ooknet.server.ookflix) services storage users groups;
|
|
|
|
mkServiceUser = name: user: {
|
|
isSystemUser = true;
|
|
group = groups.${name}.name;
|
|
uid = users.${name}.id;
|
|
home = storage.state.${name};
|
|
};
|
|
|
|
generateUsers = mapAttrs mkServiceUser users;
|
|
in {
|
|
config = mkIf ookflix.enable {
|
|
users = {
|
|
users = mkMerge [
|
|
# media service users
|
|
(mkIf services.jellyfin.enable {
|
|
${users.jellyfin.name} = mkServiceUser users.jellyfin.name groups.media.name;
|
|
})
|
|
(mkIf services.plex.enable {
|
|
${users.plex.name} = mkServiceUser users.plex.name groups.media.name;
|
|
})
|
|
(mkIf (services.jellyfin.enable || services.jellyseer.enable) {
|
|
${users.jellyseer.name} = mkServiceUser users.jellyseer.name groups.media.name;
|
|
})
|
|
];
|
|
groups = {
|
|
};
|
|
};
|
|
};
|
|
}
|