nixos: services: servarr: fix 'enableAll' logic

I renamed the option and refactored how it worked to make it more
explicit that it enables the entire suite by default, with explicit
opt-out of individual components (or fine-grained opt-in as an
alternative).
This commit is contained in:
Bruno BELANYI 2025-03-31 11:00:10 +00:00
parent ca98b8367c
commit 7791ad0907
2 changed files with 10 additions and 12 deletions

View file

@ -144,7 +144,7 @@ in
sabnzbd.enable = true; sabnzbd.enable = true;
# The whole *arr software suite # The whole *arr software suite
servarr = { servarr = {
enable = true; enableAll = true;
# ... But not Lidarr because I don't care for music that much # ... But not Lidarr because I don't care for music that much
lidarr = { lidarr = {
enable = false; enable = false;

View file

@ -19,6 +19,8 @@ let
enable = true; enable = true;
group = "media"; group = "media";
}; };
# Set-up media group
users.groups.media = { };
}; };
mkRedirection = service: { mkRedirection = service: {
@ -54,34 +56,30 @@ let
in in
{ {
options.my.services.servarr = { options.my.services.servarr = {
enable = lib.mkEnableOption "Media automation"; enableAll = lib.mkEnableOption "media automation suite";
bazarr = { bazarr = {
enable = lib.my.mkDisableOption "Bazarr"; enable = lib.mkEnableOption "Bazarr" // { default = cfg.enableAll; };;
}; };
lidarr = { lidarr = {
enable = lib.my.mkDisableOption "Lidarr"; enable = lib.mkEnableOption "Lidarr" // { default = cfg.enableAll; };
}; };
radarr = { radarr = {
enable = lib.my.mkDisableOption "Radarr"; enable = lib.mkEnableOption "Radarr" // { default = cfg.enableAll; };
}; };
readarr = { readarr = {
enable = lib.my.mkDisableOption "Readarr"; enable = lib.mkEnableOption "Readarr" // { default = cfg.enableAll; };
}; };
sonarr = { sonarr = {
enable = lib.my.mkDisableOption "Sonarr"; enable = lib.mkEnableOption "Sonarr" // { default = cfg.enableAll; };
}; };
}; };
config = lib.mkIf cfg.enable (lib.mkMerge [ config = (lib.mkMerge [
{
# Set-up media group
users.groups.media = { };
}
# Bazarr does not log authentication failures... # Bazarr does not log authentication failures...
(mkFullConfig "bazarr") (mkFullConfig "bazarr")
# Lidarr for music # Lidarr for music