1{2 lib,3 fleetLib,4 inputs,5 self,6 config,7 _fleetFlakeRootConfig,8 ...9}:10let11 inherit (lib.attrsets) mapAttrs;12 inherit (lib.options) mkOption;13 inherit (lib.types) deferredModule unspecified;14 inherit (lib.modules) mkRemovedOptionModule;15 inherit (lib.strings) escapeNixIdentifier;16 inherit (fleetLib.options) mkHostsOption;1718 _file = ./nixos.nix;19in20{21 options = {22 nixos = mkOption {23 description = ''24 Shared nixos configuration module for all hosts.25 '';26 type = deferredModule;27 };28 hosts = mkHostsOption (hostArgs: {29 inherit _file;30 options = {31 nixos = mkOption {32 description = ''33 Nixos configuration for the current host.34 '';35 type = deferredModule;36 apply =37 module:38 let39 modulesPath = "${config.nixpkgs.buildUsing}/nixos/modules";40 in41 config.nixpkgs.buildUsing.lib.evalModules {42 class = "nixos";43 prefix = ["fleetConfiguration" "hosts" hostArgs.config._module.args.name "nixos"];44 modules = (import "${modulesPath}/module-list.nix") ++ [45 (module // { key = "attr<host.nixos>"; })46 (config.nixos // { key = "attr<fleet.nixos>"; })47 ];48 specialArgs = {49 inherit fleetLib inputs self modulesPath;50 };51 };52 };53 nixos_unchecked = mkOption {54 type = unspecified;55 };56 };57 config = {58 59 60 61 nixos = let 62 inherit (hostArgs.config) system;63 in {64 _module.args = {65 nixosHosts = mapAttrs (_: value: value.nixos_unchecked.config) config.hosts;66 hosts = config.hosts;67 host = hostArgs.config;68 fleetConfiguration = config;6970 inputs' = mapAttrs (71 inputName: input:72 builtins.addErrorContext73 "while retrieving system-dependent attributes for input ${escapeNixIdentifier inputName}"74 (75 if input._type or null == "flake" then76 _fleetFlakeRootConfig.perInput system input77 else78 "input is not a flake, perhaps flake = false was added to te input declaration?"79 )80 ) inputs;81 self' = builtins.addErrorContext "while retrieving system-dependent attributes for a flake's own outputs" (82 _fleetFlakeRootConfig.perInput system self83 );84 };85 nixpkgs.hostPlatform = system;86 };87 nixos_unchecked = hostArgs.config.nixos.extendModules {88 modules = [89 {90 _module.check = false;91 }92 ];93 };94 };95 });96 };97 imports = [98 (mkRemovedOptionModule [ "nixosModules" ] "replaced with nixos.imports.")99 ];100 config.nixos.imports = import ./nixos/module-list.nix;101}
1{2 lib,3 fleetLib,4 inputs,5 self,6 config,7 _fleetFlakeRootConfig,8 ...9}:10let11 inherit (lib.attrsets) mapAttrs;12 inherit (lib.options) mkOption;13 inherit (lib.types) deferredModule unspecified;14 inherit (lib.strings) escapeNixIdentifier;15 inherit (fleetLib.options) mkHostsOption;1617 _file = ./nixos.nix;18in19{20 options = {21 nixos = mkOption {22 description = ''23 Shared nixos configuration module for all hosts.24 '';25 type = deferredModule;26 };27 hosts = mkHostsOption (hostArgs: {28 inherit _file;29 options = {30 nixos = mkOption {31 description = ''32 Nixos configuration for the current host.33 '';34 type = deferredModule;35 apply =36 module:37 let38 modulesPath = "${config.nixpkgs.buildUsing}/nixos/modules";39 in40 config.nixpkgs.buildUsing.lib.evalModules {41 class = "nixos";42 prefix = ["fleetConfiguration" "hosts" hostArgs.config._module.args.name "nixos"];43 modules = (import "${modulesPath}/module-list.nix") ++ [44 (module // { key = "attr<host.nixos>"; })45 (config.nixos // { key = "attr<fleet.nixos>"; })46 ];47 specialArgs = {48 inherit fleetLib inputs self modulesPath;49 };50 };51 };52 nixos_unchecked = mkOption {53 type = unspecified;54 };55 };56 config = {57 nixos = let 58 inherit (hostArgs.config) system;59 in {60 _module.args = {61 nixosHosts = mapAttrs (_: value: value.nixos_unchecked.config) config.hosts;62 hosts = config.hosts;63 host = hostArgs.config;64 fleetConfiguration = config;6566 inputs' = mapAttrs (67 inputName: input:68 builtins.addErrorContext69 "while retrieving system-dependent attributes for input ${escapeNixIdentifier inputName}"70 (71 if input._type or null == "flake" then72 _fleetFlakeRootConfig.perInput system input73 else74 "input is not a flake, perhaps flake = false was added to te input declaration?"75 )76 ) inputs;77 self' = builtins.addErrorContext "while retrieving system-dependent attributes for a flake's own outputs" (78 _fleetFlakeRootConfig.perInput system self79 );80 };81 nixpkgs.hostPlatform = system;82 };83 nixos_unchecked = hostArgs.config.nixos.extendModules {84 modules = [85 {86 _module.check = false;87 }88 ];89 };90 };91 });92 };93 config.nixos.imports = import ./nixos/module-list.nix;94}