mirror of
https://github.com/nix-community/home-manager.git
synced 2024-12-14 11:57:55 +00:00
home-manager: add lib support for non-flake users
This commit is contained in:
parent
e3ad5108f5
commit
7b1e8a64bd
3 changed files with 51 additions and 50 deletions
|
@ -20,4 +20,5 @@ rec {
|
|||
nixos = import ./nixos;
|
||||
|
||||
path = ./.;
|
||||
lib = import ./lib { inherit (pkgs) lib; };
|
||||
}
|
||||
|
|
51
flake.nix
51
flake.nix
|
@ -36,56 +36,7 @@
|
|||
|
||||
defaultTemplate = self.templates.standalone;
|
||||
|
||||
lib = {
|
||||
hm = (import ./modules/lib/stdlib-extended.nix nixpkgs.lib).hm;
|
||||
homeManagerConfiguration = { modules ? [ ], pkgs, lib ? pkgs.lib
|
||||
, extraSpecialArgs ? { }, check ? true
|
||||
# Deprecated:
|
||||
, configuration ? null, extraModules ? null, stateVersion ? null
|
||||
, username ? null, homeDirectory ? null, system ? 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 = nixpkgs.lib.mkDefault pkgs.config;
|
||||
inherit (pkgs) overlays;
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
lib = import ./lib { inherit (nixpkgs) lib; };
|
||||
} // (let
|
||||
forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
|
||||
in {
|
||||
|
|
49
lib/default.nix
Normal file
49
lib/default.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{ lib }: {
|
||||
hm = (import ../modules/lib/stdlib-extended.nix lib).hm;
|
||||
homeManagerConfiguration = { modules ? [ ], pkgs, lib ? pkgs.lib
|
||||
, extraSpecialArgs ? { }, check ? true
|
||||
# Deprecated:
|
||||
, configuration ? null, extraModules ? null, stateVersion ? null
|
||||
, username ? null, homeDirectory ? null, system ? 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;
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue