mirror of
https://github.com/nix-community/home-manager
synced 2024-12-24 10:49:48 +01:00
home-manager: add extendModules attribute
The `home-manager.lib.homeManagerConfiguration` function now has an additional attribute that can be used to extend a Home Manager configuration with additional modules outside the project tree. It works similar to the result of `lib.nixosSystem` from Nixpkgs
This commit is contained in:
parent
3249809b33
commit
17b2a3a2a7
1 changed files with 25 additions and 19 deletions
|
@ -28,28 +28,34 @@ let
|
|||
specialArgs = { modulesPath = builtins.toString ./.; } // extraSpecialArgs;
|
||||
};
|
||||
|
||||
module = showWarnings (let
|
||||
failed = collectFailed rawModule.config;
|
||||
failedStr = concatStringsSep "\n" (map (x: "- ${x}") failed);
|
||||
in if failed == [ ] then
|
||||
rawModule
|
||||
else
|
||||
throw ''
|
||||
moduleChecks = raw:
|
||||
showWarnings (let
|
||||
failed = collectFailed raw.config;
|
||||
failedStr = concatStringsSep "\n" (map (x: "- ${x}") failed);
|
||||
in if failed == [ ] then
|
||||
raw
|
||||
else
|
||||
throw ''
|
||||
|
||||
Failed assertions:
|
||||
${failedStr}'');
|
||||
Failed assertions:
|
||||
${failedStr}'');
|
||||
|
||||
in {
|
||||
inherit (module) options config;
|
||||
withExtraAttrs = rawModule:
|
||||
let module = moduleChecks rawModule;
|
||||
in {
|
||||
inherit (module) options config;
|
||||
|
||||
activationPackage = module.config.home.activationPackage;
|
||||
activationPackage = module.config.home.activationPackage;
|
||||
|
||||
# For backwards compatibility. Please use activationPackage instead.
|
||||
activation-script = module.config.home.activationPackage;
|
||||
# For backwards compatibility. Please use activationPackage instead.
|
||||
activation-script = module.config.home.activationPackage;
|
||||
|
||||
newsDisplay = rawModule.config.news.display;
|
||||
newsEntries = sort (a: b: a.time > b.time)
|
||||
(filter (a: a.condition) rawModule.config.news.entries);
|
||||
newsDisplay = rawModule.config.news.display;
|
||||
newsEntries = sort (a: b: a.time > b.time)
|
||||
(filter (a: a.condition) rawModule.config.news.entries);
|
||||
|
||||
inherit (module._module.args) pkgs;
|
||||
}
|
||||
inherit (module._module.args) pkgs;
|
||||
|
||||
extendModules = args: withExtraAttrs (rawModule.extendModules args);
|
||||
};
|
||||
in withExtraAttrs rawModule
|
||||
|
|
Loading…
Reference in a new issue