chore(hooks): enforce enable option on all home modules

This commit is contained in:
2026-05-22 10:06:44 +02:00
parent 692bc6acb3
commit a9dc191c2f

View File

@@ -5,6 +5,25 @@
...
}:
let
moduleDirs = lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./.);
dirHasEnableOption =
name:
let
nixFiles = lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n) (
builtins.readDir ./${name}
);
in
!(builtins.pathExists ./${name}/default.nix)
|| lib.any (f: lib.hasInfix "mkEnableOption" (builtins.readFile ./${name}/${f})) (
builtins.attrNames nixFiles
);
withoutEnableOption = builtins.attrNames (
lib.filterAttrs (name: _: !dirHasEnableOption name) moduleDirs
);
in
lib.throwIf (withoutEnableOption != [ ])
"home modules missing enable option: ${lib.concatStringsSep ", " withoutEnableOption}"
{
options = {
host.username = lib.mkOption {