git.delta.rocks / jrsonnet / refs/commits / 8fa5c73b5fe4

difftreelog

source

modules/nixos.nix2.8 KiBsourcehistory
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        Nixos configuration 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              inherit (hostArgs.config) system;40            in41            config.nixpkgs.buildUsing.lib.nixosSystem {42              inherit system;43              modules = [44                (module // { key = "attr<host.nixos>"; })45                (config.nixos // { key = "attr<fleet.nixos>"; })46              ];47              specialArgs = {48                inherit fleetLib inputs self;49                inputs' = mapAttrs (50                  inputName: input:51                  builtins.addErrorContext52                    "while retrieving system-dependent attributes for input ${escapeNixIdentifier inputName}"53                    (54                      if input._type or null == "flake" then55                        _fleetFlakeRootConfig.perInput system input56                      else57                        "input is not a flake, perhaps flake = false was added to te input declaration?"58                    )59                ) inputs;60                self' = builtins.addErrorContext "while retrieving system-dependent attributes for a flake's own outputs" (61                  _fleetFlakeRootConfig.perInput system self62                );63              };64            };65        };66        nixos_unchecked = mkOption {67          type = unspecified;68        };69      };70      config = {71        # imports = [72        #   (mkRemovedOptionModule ["nixosModules"] "replaced with hosts.*.nixos.imports.")73        # ];74        nixos = {75          config._module.args = {76            nixosHosts = mapAttrs (_: value: value.nixos_unchecked.config) config.hosts;77            hosts = config.hosts;78            host = hostArgs.config;79          };80        };81        nixos_unchecked = hostArgs.config.nixos.extendModules {82          modules = [83            {84              _module.check = false;85            }86          ];87        };88      };89    });90  };91  imports = [92    (mkRemovedOptionModule [ "nixosModules" ] "replaced with nixos.imports.")93  ];94  config.nixos.imports = import ./nixos/module-list.nix;95}