mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 20:39:18 -08:00
61 lines
1.6 KiB
Nix
61 lines
1.6 KiB
Nix
{ inputs, system ? builtins.currentSystem or "x86_64-linux" , ... }: let
|
|
patchedInputs = import ./patchedInputs.nix { inherit inputs system; };
|
|
pkgs = import ./overlays { inherit system; inputs = patchedInputs; };
|
|
inherit (pkgs) lib;
|
|
tree = import ./tree.nix { inherit lib; inputs = patchedInputs; };
|
|
root = ./.; # Required for modules/meta/imports.nix to find hosts
|
|
nixfiles = tree.impure;
|
|
|
|
eval = let
|
|
esphomeNodes = (map
|
|
(node: {
|
|
network.nodes.esphome.${node} = {
|
|
imports = config.lib.kw.esphomeImport node;
|
|
esphome = {
|
|
name = node;
|
|
};
|
|
};
|
|
})
|
|
(lib.attrNames nixfiles.esphome.boards));
|
|
nixosNodes = (map
|
|
(node: {
|
|
network.nodes.nixos.${node} = {
|
|
imports = config.lib.kw.nixosImport node;
|
|
networking = {
|
|
hostName = node;
|
|
};
|
|
};
|
|
})
|
|
(lib.attrNames nixfiles.nixos.systems));
|
|
darwinNodes = (map
|
|
(node: {
|
|
network.nodes.darwin.${node} = {
|
|
imports = config.lib.kw.darwinImport node;
|
|
networking = {
|
|
hostName = node;
|
|
};
|
|
};
|
|
})
|
|
(lib.attrNames nixfiles.darwin.systems));
|
|
in lib.evalModules {
|
|
modules = [
|
|
nixfiles.modules.meta
|
|
{
|
|
_module.args.pkgs = lib.mkDefault pkgs;
|
|
}
|
|
]
|
|
++ lib.attrValues nixfiles.targets
|
|
++ nixosNodes
|
|
++ darwinNodes
|
|
++ esphomeNodes;
|
|
|
|
specialArgs = {
|
|
inherit root tree;
|
|
inputs = patchedInputs;
|
|
meta = self;
|
|
} // nixfiles;
|
|
};
|
|
|
|
inherit (eval) config;
|
|
self = config // { inherit pkgs lib tree; inputs = patchedInputs; } // nixfiles;
|
|
in self
|