chore(buildClan): move machineClass option into inventory.machines submodule
This commit is contained in:
committed by
Mic92
parent
afbae04aa6
commit
c49dd6c462
@@ -5,6 +5,9 @@
|
|||||||
"description": "A nice thing",
|
"description": "A nice thing",
|
||||||
"icon": "./path/to/icon.png",
|
"icon": "./path/to/icon.png",
|
||||||
"tags": ["1", "2", "3"]
|
"tags": ["1", "2", "3"]
|
||||||
|
},
|
||||||
|
"test-darwin-machine": {
|
||||||
|
"machineClass": "darwin"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
|||||||
@@ -164,16 +164,18 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
allMachines = inventory.machines or { } // machines;
|
allMachines = inventoryClass.machines;
|
||||||
|
|
||||||
machineClass = lib.mapAttrs (name: _: inventory.machineClass.${name} or "nixos") allMachines;
|
machineClasses = lib.mapAttrs (
|
||||||
|
name: _: inventory.machines.${name}.machineClass or "nixos"
|
||||||
configurations = lib.mapAttrs (
|
|
||||||
name: _: moduleSystemConstructor.${machineClass.${name}} { inherit name; }
|
|
||||||
) allMachines;
|
) allMachines;
|
||||||
|
|
||||||
nixosConfigurations = lib.filterAttrs (name: _: machineClass.${name} == "nixos") configurations;
|
configurations = lib.mapAttrs (
|
||||||
darwinConfigurations = lib.filterAttrs (name: _: machineClass.${name} == "darwin") configurations;
|
name: _: moduleSystemConstructor.${machineClasses.${name}} { inherit name; }
|
||||||
|
) allMachines;
|
||||||
|
|
||||||
|
nixosConfigurations = lib.filterAttrs (name: _: machineClasses.${name} == "nixos") configurations;
|
||||||
|
darwinConfigurations = lib.filterAttrs (name: _: machineClasses.${name} == "darwin") configurations;
|
||||||
|
|
||||||
# This instantiates NixOS for each system that we support:
|
# This instantiates NixOS for each system that we support:
|
||||||
# configPerSystem = <system>.<machine>.nixosConfiguration
|
# configPerSystem = <system>.<machine>.nixosConfiguration
|
||||||
@@ -184,7 +186,7 @@ let
|
|||||||
lib.nameValuePair system (
|
lib.nameValuePair system (
|
||||||
lib.mapAttrs (
|
lib.mapAttrs (
|
||||||
name: _:
|
name: _:
|
||||||
moduleSystemConstructor.${machineClass.${name}} {
|
moduleSystemConstructor.${machineClasses.${name}} {
|
||||||
inherit name system;
|
inherit name system;
|
||||||
pkgs = pkgsFor.${system};
|
pkgs = pkgsFor.${system};
|
||||||
}
|
}
|
||||||
@@ -199,7 +201,7 @@ let
|
|||||||
lib.nameValuePair system (
|
lib.nameValuePair system (
|
||||||
lib.mapAttrs (
|
lib.mapAttrs (
|
||||||
name: _: args:
|
name: _: args:
|
||||||
moduleSystemConstructor.${machineClass.${name}} (
|
moduleSystemConstructor.${machineClasses.${name}} (
|
||||||
args
|
args
|
||||||
// {
|
// {
|
||||||
inherit name system;
|
inherit name system;
|
||||||
|
|||||||
@@ -210,14 +210,16 @@ in
|
|||||||
meta.name = "test";
|
meta.name = "test";
|
||||||
|
|
||||||
machines.machine1 = { };
|
machines.machine1 = { };
|
||||||
machines.machine2 = { };
|
inventory.machines.machine2 = {
|
||||||
machines.machine3 = { };
|
machineClass = "darwin";
|
||||||
|
};
|
||||||
inventory.machineClass.machine2 = "darwin";
|
inventory.machines.machine3 = {
|
||||||
inventory.machineClass.machine3 = "nixos";
|
machineClass = "nixos";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
inherit result;
|
||||||
expr = {
|
expr = {
|
||||||
nixos = builtins.attrNames result.nixosConfigurations;
|
nixos = builtins.attrNames result.nixosConfigurations;
|
||||||
darwin = builtins.attrNames result.darwinConfigurations;
|
darwin = builtins.attrNames result.darwinConfigurations;
|
||||||
@@ -241,7 +243,6 @@ in
|
|||||||
meta.name = "test";
|
meta.name = "test";
|
||||||
|
|
||||||
machines.machine1.non_existent_option = throw "eval error";
|
machines.machine1.non_existent_option = throw "eval error";
|
||||||
inventory.machines.machine1.other_non_existent_option = throw "different eval error";
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -243,6 +243,19 @@ in
|
|||||||
options = {
|
options = {
|
||||||
inherit (metaOptionsWith name) name description icon;
|
inherit (metaOptionsWith name) name description icon;
|
||||||
|
|
||||||
|
machineClass = lib.mkOption {
|
||||||
|
default = "nixos";
|
||||||
|
type = types.enum [
|
||||||
|
"nixos"
|
||||||
|
"darwin"
|
||||||
|
];
|
||||||
|
description = ''
|
||||||
|
The module system that should be used to construct the machine
|
||||||
|
|
||||||
|
Set this to `darwin` for macOS machines
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
tags = lib.mkOption {
|
tags = lib.mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
List of tags for the machine.
|
List of tags for the machine.
|
||||||
@@ -278,21 +291,6 @@ in
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
machineClass = lib.mkOption {
|
|
||||||
default = { };
|
|
||||||
type = types.attrsOf (
|
|
||||||
types.enum [
|
|
||||||
"nixos"
|
|
||||||
"darwin"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
description = ''
|
|
||||||
The module system that should be used to construct the machine
|
|
||||||
|
|
||||||
Set this to `darwin` for macOS machines
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
instances = lib.mkOption {
|
instances = lib.mkOption {
|
||||||
# Keep as internal until all de-/serialization issues are resolved
|
# Keep as internal until all de-/serialization issues are resolved
|
||||||
visible = false;
|
visible = false;
|
||||||
@@ -366,6 +364,7 @@ in
|
|||||||
else
|
else
|
||||||
lib.warn "Inventory.instances and related features are still under development. Please use with care." v;
|
lib.warn "Inventory.instances and related features are still under development. Please use with care." v;
|
||||||
};
|
};
|
||||||
|
|
||||||
services = lib.mkOption {
|
services = lib.mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Services of the inventory.
|
Services of the inventory.
|
||||||
|
|||||||
Reference in New Issue
Block a user