git.delta.rocks / jrsonnet / refs/commits / cc4ecd613a27

difftreelog

source

modules/fleet/nixos.nix1.4 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 deferredModuleWith;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 = deferredModuleWith {30            staticModules = import ../../nixos/modules/module-list.nix;31          };32          apply = module:33            config.nixpkgs.buildUsing.lib.nixosSystem {34              inherit (hostArgs.config) system;35              modules = [module];36            };37        };38      };39      config = {40        # imports = [41        #   (mkRemovedOptionModule ["nixosModules"] "replaced with hosts.*.nixos.imports.")42        # ];43        nixos = {44          imports = [45            config.nixos46          ];47          config._module.args.fleet = mapAttrs (_: value: value.nixos.config) config.hosts;48        };49      };50    });51  };52  imports = [53    (mkRemovedOptionModule ["nixosModules"] "replaced with nixos.imports.")54  ];55}