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;
# The whole *arr software suite
servarr = {
enable = true;
enableAll = true;
# ... But not Lidarr because I don't care for music that much
lidarr = {
enable = false;

View file

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