1
0
mirror of https://github.com/nix-community/home-manager synced 2024-06-20 13:38:38 +02:00

home-manager: set profile path variables lazily

We only need the Home Manager path variables when performing a few
operations, so only set the variables for those operations.

This avoids problems on fresh installations, where no profile
directory exists.

Fixes #4403
This commit is contained in:
e-nikolov 2023-09-14 04:13:15 +02:00 committed by Robert Helgesson
parent f1b7775d23
commit ae896c810f
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89

View File

@ -648,6 +648,8 @@ function doSwitch() {
}
function doListGens() {
setHomeManagerPathVariables
# Whether to colorize the generations output.
local color="never"
if [[ ! -v NO_COLOR && -t 1 ]]; then
@ -665,6 +667,7 @@ function doListGens() {
# Removes linked generations. Takes as arguments identifiers of
# generations to remove.
function doRmGenerations() {
setHomeManagerPathVariables
setVerboseAndDryRun
pushd "$HM_PROFILE_DIR" > /dev/null
@ -686,6 +689,8 @@ function doRmGenerations() {
}
function doExpireGenerations() {
setHomeManagerPathVariables
local generations
generations="$( \
find "$HM_PROFILE_DIR" -name 'home-manager-*-link' -not -newermt "$1" \
@ -810,6 +815,7 @@ function doShowNews() {
}
function doUninstall() {
setHomeManagerPathVariables
setVerboseAndDryRun
setNixProfileCommands
@ -945,8 +951,6 @@ COMMAND=""
COMMAND_ARGS=()
FLAKE_ARG=""
setHomeManagerPathVariables
while [[ $# -gt 0 ]]; do
opt="$1"
shift