From c05c232e957352117327953e3076e7ca372b64a1 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sun, 03 Nov 2024 23:15:49 +0000 Subject: [PATCH] feat: nixosConfigurations output compat --- --- a/lib/flakePart.nix +++ b/lib/flakePart.nix @@ -5,15 +5,28 @@ inputs ? {}, ... }: let - inherit (lib.options) mkOption; + inherit (lib.options) mkOption mkEnableOption; inherit (lib.attrsets) mapAttrs; - inherit (lib.types) lazyAttrsOf deferredModule unspecified; + inherit (lib.types) lazyAttrsOf deferredModule unspecified str; inherit (lib.strings) isPath; + inherit (lib.modules) mkIf; in { options.fleetModules = mkOption { type = lazyAttrsOf unspecified; default = {}; }; + options.fleetNixosConfigurationsCompat = { + enable = mkEnableOption "Create nixosConfiguration output based on fleetConfiguration"; + configuration = mkOption { + type = str; + description = "Which fleetConfiguration to use for compatibility"; + default = "default"; + }; + data = mkOption { + type = unspecified; + description = "Imported fleet.nix file for fleet"; + }; + }; options.fleetConfigurations = mkOption { type = lazyAttrsOf deferredModule; apply = nameToModule: @@ -71,6 +84,15 @@ config = { _module.args.fleetLib = import ../lib {inherit lib;}; flake.fleetConfigurations = config.fleetConfigurations; + flake.nixosConfigurations = let + cfg = config.fleetNixosConfigurationsCompat; + in + mkIf cfg.enable + ( + mapAttrs + (name: host: host.nixos) + (config.fleetConfigurations.${cfg.configuration} cfg.data).config.hosts + ); flake.fleetModules = config.fleetModules; }; -- gitstuff