difftreelog
feat nixosConfigurations output compat
in: trunk
1 file changed
lib/flakePart.nixdiffbeforeafterboth5 inputs ? {},5 inputs ? {},6 ...6 ...7}: let7}: let8 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 = let88 cfg = config.fleetNixosConfigurationsCompat;89 in90 mkIf cfg.enable91 (92 mapAttrs93 (name: host: host.nixos)94 (config.fleetConfigurations.${cfg.configuration} cfg.data).config.hosts95 );74 flake.fleetModules = config.fleetModules;96 flake.fleetModules = config.fleetModules;75 };97 };7698