git.delta.rocks / jrsonnet / refs/commits / 505f82ed3097

difftreelog

source

modules/nixos.nix1.6 KiBsourcehistory
1{2  lib,3  fleetLib,4  config,5  ...6}: let7  inherit (lib.attrsets) mapAttrs;8  inherit (lib.options) mkOption;9  inherit (lib.types) deferredModule;10  inherit (lib.modules) mkRemovedOptionModule;11  inherit (fleetLib.options) mkHostsOption;1213  _file = ./nixos.nix;14in {15  options = {16    nixos = mkOption {17      description = ''18        Nixos configuration for all hosts.19      '';20      type = deferredModule;21    };22    hosts = mkHostsOption (hostArgs: {23      inherit _file;24      options = {25        nixos = mkOption {26          description = ''27            Nixos configuration for the current host.28          '';29          type = deferredModule;30          apply = module:31            config.nixpkgs.buildUsing.lib.nixosSystem {32              inherit (hostArgs.config) system;33              modules = [34                (module // {key = "attr<host.nixos>";})35                (config.nixos // {key = "attr<fleet.nixos>";})36              ];37              specialArgs = {38                inherit fleetLib;39              };40            };41        };42      };43      config = {44        # imports = [45        #   (mkRemovedOptionModule ["nixosModules"] "replaced with hosts.*.nixos.imports.")46        # ];47        nixos = {48          config._module.args = {49            nixosHosts = mapAttrs (_: value: value.nixos.config) config.hosts;50            hosts = config.hosts;51            host = hostArgs.config;52          };53        };54      };55    });56  };57  imports = [58    (mkRemovedOptionModule ["nixosModules"] "replaced with nixos.imports.")59  ];60  config.nixos.imports =61    import ./nixos/module-list.nix;62}