···1+[default.extend-identifiers]
2+classToND = "classToND" # we have a good readon for this... yeah..
+2-2
README.md
···37 - `modules`: A list of modules that will be included in all the hosts of the given class.
38 - `specialArgs`: A list of special arguments that will be passed to all the hosts of the given class.
3940-- `easyHosts.additionalClasses`: This is an attrset of strings with mappings to any of [ "nixos", "darwin", "iso" ]. The intention here to provide a nicer api for `perClass` to operate, you may find yourself including `wsl` as a class beacuse of this.
4142- `easyHosts.hosts.<host>`: The options for the given host.
43 - `path`: the path to the host, this is not strictly needed if you have a flat directory called `hosts` or `systems`.
44 - `arch`: The architecture of the host.
45 - `modules`: A list of modules that will be included in the host.
46- - `class`: the class of the host, this can be one of [ "nixos", "darwin", "iso" ] or anything defined by `easyHosts.additonalClasses`.
47 - `specialArgs`: A list of special arguments that will be passed to the host.
48 - `deployable`: this was added for people who may want to consume a deploy-rs or colmena flakeModule.
49
···37 - `modules`: A list of modules that will be included in all the hosts of the given class.
38 - `specialArgs`: A list of special arguments that will be passed to all the hosts of the given class.
3940+- `easyHosts.additionalClasses`: This is an attrset of strings with mappings to any of [ "nixos", "darwin", "iso" ]. The intention here to provide a nicer api for `perClass` to operate, you may find yourself including `wsl` as a class because of this.
4142- `easyHosts.hosts.<host>`: The options for the given host.
43 - `path`: the path to the host, this is not strictly needed if you have a flat directory called `hosts` or `systems`.
44 - `arch`: The architecture of the host.
45 - `modules`: A list of modules that will be included in the host.
46+ - `class`: the class of the host, this can be one of [ "nixos", "darwin", "iso" ] or anything defined by `easyHosts.additionalClasses`.
47 - `specialArgs`: A list of special arguments that will be passed to the host.
48 - `deployable`: this was added for people who may want to consume a deploy-rs or colmena flakeModule.
49
+1-1
flake-module.nix
···108 additionalClasses = mkOption {
109 default = { };
110 type = types.attrsOf types.str;
111- description = "Additional classes and thier respective mappings to already existing classes";
112 example = lib.literalExpression ''
113 {
114 wsl = "nixos";
···108 additionalClasses = mkOption {
109 default = { };
110 type = types.attrsOf types.str;
111+ description = "Additional classes and their respective mappings to already existing classes";
112 example = lib.literalExpression ''
113 {
114 wsl = "nixos";
+7-7
lib.nix
···77 {
78 name,
79 path,
80- # by the time we recive the argument here it can only be one of
81 # nixos, darwin, or iso. The redefineClass function should be used prior
82 # nixos, darwin. The redefineClass function should be used prior
83 class,
···106 specialArgs = recursiveUpdate {
107 inherit
108 # these are normal args that people expect to be passed,
109- # but we expect to be evaulated when resolving module structure
110 inputs
111112 # even though self is just the same as `inputs.self`
113 # we still pass this as some people will use this
114 self
115116- # we need to set this beacuse some modules require it sadly
117 # you may also recall `modulesPath + /installer/scan/not-detected.nix`
118 modulesPath
119 ;
···145 "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix"
146 ])
147148- # the next 3 singleton's are split up to make it easier to understand as they do things diffrent things
149150- # recall `specialArgs` would take be prefered when resolving module structure
151 # well this is how we do it use it for all args that don't need to rosolve module structure
152 (singleton {
153 _module.args = withSystem system (
···225 };
226 };
227228- foldAttrsReccursive = foldl' (acc: attrs: recursiveUpdate acc attrs) { };
229230 mkHosts =
231 easyHostsConfig:
···249 perClass.modules
250 ];
251252- specialArgs = foldAttrsReccursive [
253 hostConfig.specialArgs
254 easyHostsConfig.shared.specialArgs
255 perClass.specialArgs
···77 {
78 name,
79 path,
80+ # by the time we receive the argument here it can only be one of
81 # nixos, darwin, or iso. The redefineClass function should be used prior
82 # nixos, darwin. The redefineClass function should be used prior
83 class,
···106 specialArgs = recursiveUpdate {
107 inherit
108 # these are normal args that people expect to be passed,
109+ # but we expect to be evaluated when resolving module structure
110 inputs
111112 # even though self is just the same as `inputs.self`
113 # we still pass this as some people will use this
114 self
115116+ # we need to set this because some modules require it sadly
117 # you may also recall `modulesPath + /installer/scan/not-detected.nix`
118 modulesPath
119 ;
···145 "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix"
146 ])
147148+ # the next 3 singleton's are split up to make it easier to understand as they do things different things
149150+ # recall `specialArgs` would take be preferred when resolving module structure
151 # well this is how we do it use it for all args that don't need to rosolve module structure
152 (singleton {
153 _module.args = withSystem system (
···225 };
226 };
227228+ foldAttrsRecursive = foldl' (acc: attrs: recursiveUpdate acc attrs) { };
229230 mkHosts =
231 easyHostsConfig:
···249 perClass.modules
250 ];
251252+ specialArgs = foldAttrsRecursive [
253 hostConfig.specialArgs
254 easyHostsConfig.shared.specialArgs
255 perClass.specialArgs