From f51e5fdd70ae1387aa13fe2381ad064b0a7e0768 Mon Sep 17 00:00:00 2001 From: e-nikolov Date: Thu, 14 Sep 2023 04:13:15 +0200 Subject: [PATCH] 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 (cherry picked from commit ae896c810f501bf0c3a2fd7fc2de094dd0addf01) --- home-manager/home-manager | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/home-manager/home-manager b/home-manager/home-manager index e2a84e42..e41e4b4b 100644 --- a/home-manager/home-manager +++ b/home-manager/home-manager @@ -623,6 +623,8 @@ function doSwitch() { } function doListGens() { + setHomeManagerPathVariables + # Whether to colorize the generations output. local color="never" if [[ ! -v NO_COLOR && -t 1 ]]; then @@ -640,6 +642,7 @@ function doListGens() { # Removes linked generations. Takes as arguments identifiers of # generations to remove. function doRmGenerations() { + setHomeManagerPathVariables setVerboseAndDryRun pushd "$HM_PROFILE_DIR" > /dev/null @@ -661,6 +664,8 @@ function doRmGenerations() { } function doExpireGenerations() { + setHomeManagerPathVariables + local generations generations="$( \ find "$HM_PROFILE_DIR" -name 'home-manager-*-link' -not -newermt "$1" \ @@ -759,6 +764,7 @@ function doShowNews() { } function doUninstall() { + setHomeManagerPathVariables setVerboseAndDryRun setNixProfileCommands @@ -893,8 +899,6 @@ COMMAND="" COMMAND_ARGS=() FLAKE_ARG="" -setHomeManagerPathVariables - while [[ $# -gt 0 ]]; do opt="$1" shift