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