fix specialArg handling + use mergeStructs
This commit is contained in:
parent
64d13428d0
commit
8734ca8835
1 changed files with 16 additions and 13 deletions
29
flake.nix
29
flake.nix
|
|
@ -74,11 +74,7 @@
|
||||||
in {
|
in {
|
||||||
system = missing "its system type" "system"; # intentionally left missing!! (to raise errors)
|
system = missing "its system type" "system"; # intentionally left missing!! (to raise errors)
|
||||||
modules = missing "its required modules" "modules";
|
modules = missing "its required modules" "modules";
|
||||||
specialArgs = Terminal {
|
specialArgs = Terminal {};
|
||||||
inherit inputs;
|
|
||||||
pkgs = sys.pkgsFor system;
|
|
||||||
upkgs = sys.upkgsFor system;
|
|
||||||
};
|
|
||||||
|
|
||||||
deploy = {
|
deploy = {
|
||||||
user = "root";
|
user = "root";
|
||||||
|
|
@ -113,32 +109,39 @@
|
||||||
else let
|
else let
|
||||||
templateAttrs = templateNode name nodeAttrs.system;
|
templateAttrs = templateNode name nodeAttrs.system;
|
||||||
in
|
in
|
||||||
nib.parse.parseStructFor templateAttrs nodeAttrs;
|
nib.parse.mergeStructs templateAttrs nodeAttrs;
|
||||||
|
|
||||||
# mapNodes = f: builtins.mapAttrs f (builtins.mapAttrs parseNode config.nexus.nodes);
|
# mapNodes = f: builtins.mapAttrs f (builtins.mapAttrs parseNode config.nexus.nodes);
|
||||||
mapNodes = f:
|
mapNodes = f:
|
||||||
builtins.mapAttrs (
|
builtins.mapAttrs
|
||||||
name: nodeAttrs: f name (parseNode name nodeAttrs)
|
(nodeName: nodeAttrs: f nodeName (parseNode nodeName nodeAttrs))
|
||||||
)
|
|
||||||
config.nexus.nodes;
|
config.nexus.nodes;
|
||||||
in rec {
|
in rec {
|
||||||
nixosConfigurations = mapNodes (
|
nixosConfigurations = mapNodes (
|
||||||
_: node:
|
nodeName: node:
|
||||||
lib.nixosSystem {
|
lib.nixosSystem {
|
||||||
system = node.system;
|
system = node.system;
|
||||||
modules = node.modules;
|
modules = node.modules;
|
||||||
|
|
||||||
# nix passes these to every single module
|
# nix passes these to every single module
|
||||||
specialArgs = {} // node.modules.specialArgs;
|
specialArgs =
|
||||||
|
node.modules.specialArgs
|
||||||
|
// {
|
||||||
|
inherit inputs;
|
||||||
|
pkgs = sys.pkgsFor node.system;
|
||||||
|
upkgs = sys.upkgsFor node.system;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
deploy.nodes = mapNodes (_: node: {
|
deploy.nodes = mapNodes (nodeName: node: let
|
||||||
|
nixosFor = system: deploy-rs.lib.${system}.activate.nixos;
|
||||||
|
in {
|
||||||
hostname = node.deploy.ssh.host;
|
hostname = node.deploy.ssh.host;
|
||||||
|
|
||||||
profilesOrder = ["default"]; # profiles priority
|
profilesOrder = ["default"]; # profiles priority
|
||||||
profiles.default = {
|
profiles.default = {
|
||||||
path = deploy-rs.lib.${node.system}.activate.nixos nixosConfigurations.${node.system};
|
path = nixosFor node.system nixosConfigurations.${nodeName};
|
||||||
|
|
||||||
user = node.deploy.user;
|
user = node.deploy.user;
|
||||||
sudo = node.deploy.sudo;
|
sudo = node.deploy.sudo;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue