2021-05-28 16:20:18 -05:00
|
|
|
{ pkgs, lib }:
|
2017-11-11 11:52:17 +01:00
|
|
|
|
|
|
|
|
let
|
2021-05-28 16:20:18 -05:00
|
|
|
|
|
|
|
|
kubenix = {
|
|
|
|
|
inherit evalModules;
|
|
|
|
|
lib = import ./lib { inherit lib pkgs; };
|
|
|
|
|
modules = import ./modules;
|
|
|
|
|
};
|
2019-02-10 21:03:47 +01:00
|
|
|
|
2019-03-07 18:02:26 +01:00
|
|
|
defaultSpecialArgs = {
|
2021-05-28 16:20:18 -05:00
|
|
|
inherit kubenix;
|
|
|
|
|
nixosPath = pkgs.path + "/nixos";
|
2019-02-10 21:03:47 +01:00
|
|
|
};
|
|
|
|
|
|
2019-03-07 23:23:07 +01:00
|
|
|
# evalModules with same interface as lib.evalModules and kubenix as
|
|
|
|
|
# special argument
|
2021-05-13 17:27:08 -04:00
|
|
|
evalModules =
|
|
|
|
|
{ module ? null
|
|
|
|
|
, modules ? [ module ]
|
|
|
|
|
, specialArgs ? defaultSpecialArgs
|
|
|
|
|
, ...
|
|
|
|
|
}@attrs:
|
|
|
|
|
let
|
2021-05-31 17:24:59 -05:00
|
|
|
lib' = lib.extend (lib: self: import ./lib/upstreamables.nix { inherit lib pkgs; });
|
|
|
|
|
attrs' = builtins.removeAttrs attrs [ "module" ];
|
2021-05-13 17:27:08 -04:00
|
|
|
in
|
2021-05-28 16:20:18 -05:00
|
|
|
lib'.evalModules (lib.recursiveUpdate
|
2021-05-13 17:27:08 -04:00
|
|
|
{
|
|
|
|
|
inherit specialArgs modules;
|
|
|
|
|
args = {
|
|
|
|
|
inherit pkgs;
|
|
|
|
|
name = "default";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
attrs');
|
|
|
|
|
in
|
|
|
|
|
kubenix
|