diff --git a/eval-config.nix b/eval-config.nix index 7c6d48ffc..88e247156 100644 --- a/eval-config.nix +++ b/eval-config.nix @@ -17,6 +17,7 @@ in { lib , modules , baseModules ? import ./modules/module-list.nix +, extraModules ? [] , specialArgs ? { } , check ? true , enableNixpkgsReleaseCheck ? true @@ -72,14 +73,14 @@ let _file = ./eval-config.nix; config = { _module.args = { - inherit baseModules modules; + inherit baseModules extraModules modules; }; }; }; - eval = lib.evalModules (builtins.removeAttrs args [ "lib" "enableNixpkgsReleaseCheck" ] // { + eval = lib.evalModules (builtins.removeAttrs args [ "lib" "enableNixpkgsReleaseCheck" "extraModules" ] // { class = "darwin"; - modules = modules ++ [ argsModule ] ++ baseModules; + modules = baseModules ++ extraModules ++ modules ++ [ argsModule ]; specialArgs = { modulesPath = builtins.toString ./modules; } // specialArgs; }); in diff --git a/flake.nix b/flake.nix index 92569fa93..ecfd214a6 100644 --- a/flake.nix +++ b/flake.nix @@ -18,11 +18,13 @@ lib = { evalConfig = import ./eval-config.nix; - darwinSystem = args@{ modules, ... }: self.lib.evalConfig ( + darwinSystem = args@{ modules, extraModules ? [], ... }: self.lib.evalConfig ( { inherit (nixpkgs) lib; } // nixpkgs.lib.optionalAttrs (args ? pkgs) { inherit (args.pkgs) lib; } // builtins.removeAttrs args [ "system" "pkgs" "inputs" ] // { + inherit extraModules; + modules = modules ++ nixpkgs.lib.optional (args ? pkgs) ({ lib, ... }: { _module.args.pkgs = lib.mkForce args.pkgs;