2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-07-31 18:19:40 +00:00

fix(template): fall back to $::XCATROOT when XCATROOT is not in %ENV

envvar() resolves a template variable purely from %ENV, so a template that
references $XCATROOT expands to an empty string whenever XCATROOT is not
present in the environment of the process doing the substitution. $::XCATROOT
is set as a package global at module load and is reliably available, so use it
for that one variable before falling back to %ENV.

Recovered from the unmerged lenovobuild branch (original da72c6b8).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
This commit is contained in:
Vinícius Ferrão
2026-07-22 19:11:47 -03:00
parent cf44f51463
commit 34866ebc23
+4
View File
@@ -1617,6 +1617,10 @@ sub envvar
$envvar =~ s/^\$//;
}
# $XCATROOT is reliably set as a package global even when it is absent from
# %ENV, so a template referencing it does not expand to undef.
if ($envvar eq 'XCATROOT') { return $::XCATROOT; }
return ($ENV{$envvar});
}