mirror of
https://github.com/nix-community/home-manager.git
synced 2026-01-11 17:39:37 +08:00
home-manager: allow a user-defined third module path
The user-defined path will be used if present, otherwise the two
"fallback" defaults (in `.nixpkgs` and `.config/nixpkgs`) will be
used.
(cherry picked from commit 28d3f74614)
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
{ pkgs, modulesPath ? "$HOME/.config/nixpkgs/home-manager/modules" }:
|
||||
{ pkgs
|
||||
|
||||
# Extra path to the Home Manager modules. If set then this path will
|
||||
# be tried before `$HOME/.config/nixpkgs/home-manager/modules` and
|
||||
# `$HOME/.nixpkgs/home-manager/modules`.
|
||||
, modulesPath ? null
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
@@ -16,6 +22,8 @@ let
|
||||
}
|
||||
'';
|
||||
|
||||
modulesPathStr = if modulesPath == null then "" else modulesPath;
|
||||
|
||||
in
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
@@ -29,7 +37,7 @@ pkgs.stdenv.mkDerivation {
|
||||
substituteInPlace $out/bin/home-manager \
|
||||
--subst-var-by bash "${pkgs.bash}" \
|
||||
--subst-var-by coreutils "${pkgs.coreutils}" \
|
||||
--subst-var-by MODULES_PATH '${modulesPath}' \
|
||||
--subst-var-by MODULES_PATH '${modulesPathStr}' \
|
||||
--subst-var-by HOME_MANAGER_EXPR_PATH "${homeManagerExpr}"
|
||||
'';
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ function setConfigFile() {
|
||||
function setHomeManagerModulesPath() {
|
||||
local modulesPath
|
||||
for modulesPath in "@MODULES_PATH@" \
|
||||
"$HOME/.config/nixpkgs/home-manager/modules" \
|
||||
"$HOME/.nixpkgs/home-manager/modules" ; do
|
||||
if [[ -e "$modulesPath" ]] ; then
|
||||
export NIX_PATH="$NIX_PATH${NIX_PATH:+:}home-manager=$modulesPath"
|
||||
|
||||
Reference in New Issue
Block a user