diff --git a/default.nix b/default.nix index f1fd2804..97f67bfe 100644 --- a/default.nix +++ b/default.nix @@ -2,47 +2,56 @@ let # Sources are from niv. sources = import ./nix/sources.nix; # We pass sources through to pkgs and get our nixpkgs + overlays. - pkgs = import ./pkgs.nix { inherit sources; }; + pkgs = import ./overlay.nix { inherit sources; }; # We want our overlaid lib. inherit (pkgs) lib; # This is used for caching niv sources in CI. sourceCache = import ./cache.nix { inherit sources lib; }; - # This is used for the base path for hostImport. + # This is used for the base path for nodeImport. root = ./.; /* This is used to generate specialArgs + the like. It works as such: - * A can exist at config/. - * A can exist at config/trusted/. + * A can exist at config/. + * A can exist at config/trusted/. If only one exists, the path for that one is returned. Otherwise a module is generated which contains both import paths. */ - subconfigNames = lib.unique (lib.folderList ./config ["trusted"] ++ lib.folderList ./config/trusted ["pkgs" "tf"]); - subconfig = lib.mapListToAttrs (folder: lib.nameValuePair folder (lib.domainMerge { + xargNames = lib.unique (lib.folderList ./config ["trusted"] ++ lib.folderList ./config/trusted ["pkgs" "tf"]); + xarg = lib.mapListToAttrs (folder: lib.nameValuePair folder (lib.domainMerge { inherit folder; folderPaths = [ (./config + "/${folder}") (./config/trusted + "/${folder}") ]; - })) subconfigNames; + })) xargNames; /* - We use this to make the meta runner use this file and to use `--show-trace` on nix-builds. - We also pass through pkgs to meta this way. + We provide the runners with this file this way. We also provide our nix args here. + This is also where pkgs are passed through to the meta config. */ - metaConfig = import ./meta.nix { - inherit pkgs lib; + metaConfig = { + config = { + runners = { + lazy = { + file = root; + args = [ "--show-trace" ]; + }; + }; + _module.args = { + pkgs = lib.mkDefault pkgs; + }; + }; }; # This is where the meta config is evaluated. eval = lib.evalModules { modules = lib.singleton metaConfig - ++ lib.attrValues (removeAttrs subconfig.targets ["common"]) - ++ lib.attrValues subconfig.hosts - ++ lib.optional (builtins.pathExists ./config/trusted/meta.nix) ./config/trusted/meta.nix + ++ lib.attrValues (removeAttrs xarg.targets ["common"]) + ++ lib.attrValues xarg.hosts ++ lib.singleton ./config/modules/meta/default.nix; specialArgs = { inherit sources root; meta = self; - } // subconfig; + } // xarg; }; # The evaluated meta config. @@ -50,7 +59,7 @@ let /* Please note all specialArg generated specifications use the folder common to both import paths. - Those import paths are as mentioned above next to `subconfigNames`. + Those import paths are as mentioned above next to `xargNames`. This provides us with a ./. that contains (most relevantly): * deploy.targets -> a mapping of target name to host names @@ -61,5 +70,5 @@ let * do not use common, it is tf-nix specific config ingested at line 66 of config/modules/meta/deploy.nix for every target. * services -> the specialArg generated from services/ */ -self = config // { inherit pkgs lib sourceCache sources; } // subconfig; +self = config // { inherit pkgs lib sourceCache sources; } // xarg; in self diff --git a/meta.nix b/meta.nix deleted file mode 100644 index 9a5aa314..00000000 --- a/meta.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ pkgs, lib, ... }: { - config = { - runners = { - lazy = { - file = ./.; - args = [ "--show-trace" ]; - }; - }; - _module.args = { - pkgs = lib.mkDefault pkgs; - }; - }; -} diff --git a/pkgs.nix b/overlay.nix similarity index 100% rename from pkgs.nix rename to overlay.nix diff --git a/shell.nix b/shell.nix index d8fdefb6..b0c138c3 100644 --- a/shell.nix +++ b/shell.nix @@ -31,8 +31,8 @@ echo $f nix run --arg config $f ci.run.gh-actions-generate done - cd ${toString ./depot/trusted} - export TRUSTED_CONFIG_ROOT=${toString ./depot/trusted}/ci + cd ${toString ./config/trusted} + export TRUSTED_CONFIG_ROOT=${toString ./config/trusted}/ci TRUSTED_CONFIG_FILES=($TRUSTED_CONFIG_ROOT/nodes.nix) for f in "''${TRUSTED_CONFIG_FILES[@]}"; do echo $f @@ -49,8 +49,8 @@ echo $f nix run --arg config $f ci.test done - cd ${toString ./depot/trusted} - export TRUSTED_CONFIG_ROOT=${toString ./depot/trusted}/ci + cd ${toString ./config/trusted} + export TRUSTED_CONFIG_ROOT=${toString ./config/trusted}/ci TRUSTED_CONFIG_FILES=($TRUSTED_CONFIG_ROOT/nodes.nix) for f in "''${TRUSTED_CONFIG_FILES[@]}"; do echo $f