1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 11:36:05 +01:00
home-manager/lib/default.nix
2025-05-07 10:03:21 -05:00

70 lines
1.7 KiB
Nix

{ lib }:
{
hm = (import ../modules/lib/stdlib-extended.nix lib).hm;
homeManagerConfiguration =
{
modules ? [ ],
pkgs,
lib ? pkgs.lib,
extraSpecialArgs ? { },
check ? true,
# Deprecated:
configuration ? null,
}@args:
let
msgForRemovedArg = ''
The 'homeManagerConfiguration' arguments
- 'configuration',
- 'username',
- 'homeDirectory'
- 'stateVersion',
- 'extraModules', and
- 'system'
have been removed. Instead use the arguments 'pkgs' and
'modules'. See the 22.11 release notes for more: https://nix-community.github.io/home-manager/release-notes.xhtml#sec-release-22.11-highlights
'';
throwForRemovedArgs =
v:
let
used = builtins.filter (n: (args.${n} or null) != null) [
"configuration"
"username"
"homeDirectory"
"stateVersion"
"extraModules"
"system"
];
msg =
msgForRemovedArg
+ ''
Deprecated args passed: ''
+ builtins.concatStringsSep " " used;
in
lib.throwIf (used != [ ]) msg v;
in
throwForRemovedArgs (
import ../modules {
inherit
pkgs
lib
check
extraSpecialArgs
;
configuration =
{ ... }:
{
imports = modules ++ [ { programs.home-manager.path = "${../.}"; } ];
nixpkgs = {
config = lib.mkDefault pkgs.config;
inherit (pkgs) overlays;
};
};
}
);
}