Merge pull request #350 from hercules-ci/issue-331

feat(flakeModules): add packages etc for disabledModules
This commit is contained in:
Robert Hensing 2026-05-04 13:40:46 +01:00 committed by GitHub
commit 5d82aa3d6b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 65 additions and 0 deletions

View file

@ -162,6 +162,13 @@ let
}; };
}); });
disableBuiltinModule = mod: mkFlake
{ inputs.self = { }; }
{
systems = [ "x86_64-linux" ];
disabledModules = [ mod ];
};
flakeModulesImport = mkFlake flakeModulesImport = mkFlake
{ inputs.self = { }; } { inputs.self = { }; }
{ {
@ -390,6 +397,45 @@ in
expr = flakeModulesDisable.test123; expr = flakeModulesDisable.test123;
expected = "option123"; expected = "option123";
}; };
# Basic module disable checks. These aren't particularly thorough, but since
# these "interface" modules don't tend to interact, that should be ok for now.
"test: disable built-in apps" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.apps);
expected = builtins.filter (n: n != "apps") (builtins.attrNames empty);
};
"test: disable built-in checks" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.checks);
expected = builtins.filter (n: n != "checks") (builtins.attrNames empty);
};
"test: disable built-in devShells" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.devShells);
expected = builtins.filter (n: n != "devShells") (builtins.attrNames empty);
};
"test: disable built-in formatter" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.formatter);
expected = builtins.filter (n: n != "formatter") (builtins.attrNames empty);
};
"test: disable built-in legacyPackages" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.legacyPackages);
expected = builtins.filter (n: n != "legacyPackages") (builtins.attrNames empty);
};
"test: disable built-in nixosConfigurations" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.nixosConfigurations);
expected = builtins.filter (n: n != "nixosConfigurations") (builtins.attrNames empty);
};
"test: disable built-in nixosModules" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.nixosModules);
expected = builtins.filter (n: n != "nixosModules") (builtins.attrNames empty);
};
"test: disable built-in overlays" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.overlays);
expected = builtins.filter (n: n != "overlays") (builtins.attrNames empty);
};
"test: disable built-in packages" = {
expr = builtins.attrNames (disableBuiltinModule flake-parts.flakeModules.packages);
expected = builtins.filter (n: n != "packages") (builtins.attrNames empty);
};
}; };
"test: packages not strict in devShells" = { "test: packages not strict in devShells" = {

View file

@ -46,6 +46,25 @@
}; };
}; };
flakeModules = { flakeModules = {
# Built-in modules
apps = ./modules/apps.nix;
checks = ./modules/checks.nix;
debug = ./modules/debug.nix;
devShells = ./modules/devShells.nix;
flake = ./modules/flake.nix;
formatter = ./modules/formatter.nix;
legacyPackages = ./modules/legacyPackages.nix;
moduleWithSystem = ./modules/moduleWithSystem.nix;
nixosConfigurations = ./modules/nixosConfigurations.nix;
nixosModules = ./modules/nixosModules.nix;
nixpkgs = ./modules/nixpkgs.nix;
overlays = ./modules/overlays.nix;
packages = ./modules/packages.nix;
perSystem = ./modules/perSystem.nix;
transposition = ./modules/transposition.nix;
withSystem = ./modules/withSystem.nix;
# Extras
easyOverlay = ./extras/easyOverlay.nix; easyOverlay = ./extras/easyOverlay.nix;
flakeModules = ./extras/flakeModules.nix; flakeModules = ./extras/flakeModules.nix;
modules = ./extras/modules.nix; modules = ./extras/modules.nix;