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

difftreelog

feat nixosConfigurations output compat

Yaroslav Bolyukin2024-11-03parent: #13f8ec8.patch.diff
in: trunk

1 file changed

modifiedlib/flakePart.nixdiffbeforeafterboth
5 inputs ? {},5 inputs ? {},
6 ...6 ...
7}: let7}: let
8 inherit (lib.options) mkOption;8 inherit (lib.options) mkOption mkEnableOption;
9 inherit (lib.attrsets) mapAttrs;9 inherit (lib.attrsets) mapAttrs;
10 inherit (lib.types) lazyAttrsOf deferredModule unspecified;10 inherit (lib.types) lazyAttrsOf deferredModule unspecified str;
11 inherit (lib.strings) isPath;11 inherit (lib.strings) isPath;
12 inherit (lib.modules) mkIf;
12in {13in {
13 options.fleetModules = mkOption {14 options.fleetModules = mkOption {
14 type = lazyAttrsOf unspecified;15 type = lazyAttrsOf unspecified;
15 default = {};16 default = {};
16 };17 };
18 options.fleetNixosConfigurationsCompat = {
19 enable = mkEnableOption "Create nixosConfiguration output based on fleetConfiguration";
20 configuration = mkOption {
21 type = str;
22 description = "Which fleetConfiguration to use for compatibility";
23 default = "default";
24 };
25 data = mkOption {
26 type = unspecified;
27 description = "Imported fleet.nix file for fleet";
28 };
29 };
17 options.fleetConfigurations = mkOption {30 options.fleetConfigurations = mkOption {
18 type = lazyAttrsOf deferredModule;31 type = lazyAttrsOf deferredModule;
19 apply = nameToModule:32 apply = nameToModule:
71 config = {84 config = {
72 _module.args.fleetLib = import ../lib {inherit lib;};85 _module.args.fleetLib = import ../lib {inherit lib;};
73 flake.fleetConfigurations = config.fleetConfigurations;86 flake.fleetConfigurations = config.fleetConfigurations;
87 flake.nixosConfigurations = let
88 cfg = config.fleetNixosConfigurationsCompat;
89 in
90 mkIf cfg.enable
91 (
92 mapAttrs
93 (name: host: host.nixos)
94 (config.fleetConfigurations.${cfg.configuration} cfg.data).config.hosts
95 );
74 flake.fleetModules = config.fleetModules;96 flake.fleetModules = config.fleetModules;
75 };97 };
7698