flake-parts/setups: add config-specific standalone modules option

This commit is contained in:
Gabriel Arazas 2025-04-21 20:15:39 +08:00
parent 52f58cb4a7
commit a75045fa4d
No known key found for this signature in database
GPG Key ID: 62104B43D00AA360
3 changed files with 28 additions and 5 deletions

View File

@ -91,6 +91,13 @@ let
node. node.
''; '';
}; };
standaloneConfigModules = options.setups.home-manager.standaloneConfigModules // {
description = ''
A list of config-specific modules to be used when deployed as a
standalone home-manager environment.
'';
};
}; };
config = { config = {
@ -381,7 +388,7 @@ in {
inherit pkgs system; inherit pkgs system;
inherit (metadata) homeManagerBranch; inherit (metadata) homeManagerBranch;
extraModules = cfg.sharedModules ++ cfg.standaloneConfigModules extraModules = cfg.sharedModules ++ cfg.standaloneConfigModules
++ metadata.modules; ++ metadata.modules ++ metadata.standaloneConfigModules;
})) metadata.systems); })) metadata.systems);
in lib.mapAttrs generatePureConfigs cfg.configs; in lib.mapAttrs generatePureConfigs cfg.configs;
in { in {

View File

@ -97,6 +97,13 @@ let
} }
]; ];
}; };
standaloneConfigModules = options.setups.nixvim.standaloneConfigModules // {
description = ''
A list of config-specific modules to be included when deployed as a
standalone NixVim package.
'';
};
}; };
config = { config = {
@ -252,7 +259,7 @@ in {
inherit system pkgs; inherit system pkgs;
inherit (component) nixvimBranch; inherit (component) nixvimBranch;
modules = cfg.sharedModules ++ cfg.standaloneConfigModules modules = cfg.sharedModules ++ cfg.standaloneConfigModules
++ metadata.modules ++ [{ package = neovimPackage; }]; ++ metadata.modules ++ metadata.standaloneConfigModules ++ [{ package = neovimPackage; }];
}); });
nixvimConfigs = lib.map mkNixvimConfig' metadata.components; nixvimConfigs = lib.map mkNixvimConfig' metadata.components;
in lib.listToAttrs nixvimConfigs; in lib.listToAttrs nixvimConfigs;

View File

@ -62,6 +62,15 @@ let
}; };
wrapperManagerConfigModule = { name, config, lib, ... }: { wrapperManagerConfigModule = { name, config, lib, ... }: {
options = {
standaloneConfigModules = options.setups.wrapper-manager.standaloneConfigModules // {
description = ''
A list of config-specific modules to be included when the
wrapper-manager package is deployed as a standalone package.
'';
};
};
config = { config = {
nixpkgs.config = cfg.sharedNixpkgsConfig; nixpkgs.config = cfg.sharedNixpkgsConfig;
specialArgs = cfg.sharedSpecialArgs; specialArgs = cfg.sharedSpecialArgs;
@ -119,7 +128,7 @@ in {
''; '';
}; };
standaloneModules = lib.mkOption { standaloneConfigModules = lib.mkOption {
type = with lib.types; listOf deferredModule; type = with lib.types; listOf deferredModule;
default = [ ]; default = [ ];
description = '' description = ''
@ -196,8 +205,8 @@ in {
inherit pkgs; inherit pkgs;
inherit (metadata) specialArgs; inherit (metadata) specialArgs;
wrapperManagerBranch = metadata.wrapper-manager.branch; wrapperManagerBranch = metadata.wrapper-manager.branch;
modules = cfg.sharedModules ++ cfg.standaloneModules modules = cfg.sharedModules ++ cfg.standaloneConfigModules
++ metadata.modules; ++ metadata.modules ++ metadata.standaloneConfigModules;
}) validWrapperManagerConfigs; }) validWrapperManagerConfigs;
}; };
}) })