diff --git a/nixos/modules/services/networking/cgit.nix b/nixos/modules/services/networking/cgit.nix index 63d247a9e068..db0fa913cde4 100644 --- a/nixos/modules/services/networking/cgit.nix +++ b/nixos/modules/services/networking/cgit.nix @@ -217,7 +217,8 @@ in When enabled you must also configure `strict-export = "git-daemon-export-ok"` in `settings` to make cgit check for the same files. ''; - type = lib.types.bool; + type = lib.types.nullOr lib.types.bool; + default = null; }; }; } @@ -235,18 +236,24 @@ in } { assertion = - !cfg.enable - || !cfg.gitHttpBackend.enable - || !cfg.gitHttpBackend.checkExportOkFiles - || cfg.settings.strict-export == "git-daemon-export-ok"; + cfg.enable -> cfg.gitHttpBackend.enable -> cfg.gitHttpBackend.checkExportOkFiles != null; + message = "Misconfigured services.cgit.${vhost}: When gitHttpBackend.enable is true then gitHttpBackend.checkExportOkFiles must be set, see the documentation for the option for further information."; + } + { + assertion = + cfg.enable + -> cfg.gitHttpBackend.enable + -> cfg.gitHttpBackend.checkExportOkFiles + -> (cfg.settings ? strict-export && cfg.settings.strict-export == "git-daemon-export-ok"); message = "Misconfigured services.cgit.${vhost}: When gitHttpBackend.checkExportOkFiles is true then settings.strict-export must be \"git-daemon-export-ok\"."; } { assertion = - !cfg.enable - || !cfg.gitHttpBackend.enable - || cfg.settings.strict-export == null - || cfg.gitHttpBackend.checkExportOkFiles; + cfg.enable + -> cfg.gitHttpBackend.enable + -> !cfg.gitHttpBackend.checkExportOkFiles + -> cfg.settings ? strict-export + -> cfg.settings.strict-export == null; message = "Misconfigured services.cgit.${vhost}: settings.strict-export is set but the gitHttpBackend is enabled and checkExportOkFiles is false."; } ]) cfgs