flake-parts/setups/wrapper-manager: replace src with branch for top-level configs

This commit is contained in:
Gabriel Arazas 2025-04-06 15:55:21 +08:00
parent 75bb6cac42
commit 57b8882cb9
No known key found for this signature in database
GPG Key ID: 62104B43D00AA360

View File

@ -4,21 +4,11 @@ let
partsConfig = config; partsConfig = config;
cfg = config.setups.wrapper-manager; cfg = config.setups.wrapper-manager;
mkWrapperManagerPackage = { pkgs, src, modules ? [ ], specialArgs ? { }, }: mkWrapperManagerPackage = { pkgs, wrapperManagerBranch ? "wrapper-manager-fds", modules ? [ ], specialArgs ? { }, }:
let wrapperManagerEntrypoint = import src { }; inputs.${wrapperManagerBranch}.lib.build { inherit pkgs modules specialArgs; };
in wrapperManagerEntrypoint.lib.build { inherit pkgs modules specialArgs; };
wrapperManagerIntegrationModule = { name, config, lib, ... }: { wrapperManagerIntegrationModule = { name, config, lib, ... }: {
options.wrapper-manager = { options.wrapper-manager = {
src = lib.mkOption {
type = lib.types.path;
default = ../../../subprojects/wrapper-manager-fds;
description = ''
The path of the wrapper-manager-fds to be used to properly initialize
to the environment.
'';
};
additionalModules = lib.mkOption { additionalModules = lib.mkOption {
type = with lib.types; listOf deferredModule; type = with lib.types; listOf deferredModule;
default = [ ]; default = [ ];
@ -28,6 +18,15 @@ let
''; '';
}; };
branch = lib.mkOption {
type = lib.types.str;
default = "wrapper-manager-fds";
example = "wrapper-manager-fds-stable";
description = ''
Name of the flake input containing the wrapper-manager-fds dependency.
'';
};
packages = lib.mkOption { packages = lib.mkOption {
type = with lib.types; type = with lib.types;
attrsOf (submodule { attrsOf (submodule {
@ -137,7 +136,9 @@ in {
({ config, lib, ... }: { ({ config, lib, ... }: {
config = lib.mkIf (config.wrapper-manager.packages != { }) { config = lib.mkIf (config.wrapper-manager.packages != { }) {
modules = modules =
[ (import config.wrapper-manager.src { }).nixosModules.default ]; [
inputs.${config.wrapper-manager.branch}.nixosModules.default
];
}; };
}) })
]); ]);
@ -150,7 +151,9 @@ in {
({ config, lib, ... }: { ({ config, lib, ... }: {
config = lib.mkIf (config.wrapper-manager.packages != { }) { config = lib.mkIf (config.wrapper-manager.packages != { }) {
modules = modules =
[ (import config.wrapper-manager.src { }).homeModules.default ]; [
inputs.${config.wrapper-manager.branch}.homeModules.default
];
}; };
}) })
]); ]);
@ -181,7 +184,7 @@ in {
in mkWrapperManagerPackage { in mkWrapperManagerPackage {
inherit pkgs; inherit pkgs;
inherit (metadata) specialArgs; inherit (metadata) specialArgs;
inherit (metadata.wrapper-manager) src; wrapperManagerBranch = metadata.wrapper-manager.branch;
modules = cfg.sharedModules ++ cfg.standaloneModules modules = cfg.sharedModules ++ cfg.standaloneModules
++ metadata.modules; ++ metadata.modules;
}) validWrapperManagerConfigs; }) validWrapperManagerConfigs;