stdenv/setup.sh: undo local -n change
It's better than the eval solution this is adding back, but until we can rely on a particular version of bash in nix-shell, this just breaks too much stuff. See https://github.com/NixOS/nix/commit/c94f3d5575d7af5403274d1e9e2f3c9d72989751 and https://github.com/NixOS/nix/pull/1483 for the better long-term solution.
This commit is contained in:
@@ -17,9 +17,10 @@ runHook() {
|
|||||||
shift
|
shift
|
||||||
local var="$hookName"
|
local var="$hookName"
|
||||||
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
||||||
local -n var
|
|
||||||
|
eval "local -a dummy=(\"\${$var[@]}\")"
|
||||||
local hook
|
local hook
|
||||||
for hook in "_callImplicitHook 0 $hookName" "${var[@]}"; do
|
for hook in "_callImplicitHook 0 $hookName" "${dummy[@]}"; do
|
||||||
_eval "$hook" "$@"
|
_eval "$hook" "$@"
|
||||||
done
|
done
|
||||||
return 0
|
return 0
|
||||||
@@ -33,9 +34,9 @@ runOneHook() {
|
|||||||
shift
|
shift
|
||||||
local var="$hookName"
|
local var="$hookName"
|
||||||
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
if [[ "$hookName" =~ Hook$ ]]; then var+=s; else var+=Hooks; fi
|
||||||
local -n var
|
eval "local -a dummy=(\"\${$var[@]}\")"
|
||||||
local hook
|
local hook
|
||||||
for hook in "_callImplicitHook 1 $hookName" "${var[@]}"; do
|
for hook in "_callImplicitHook 1 $hookName" "${dummy[@]}"; do
|
||||||
if _eval "$hook" "$@"; then
|
if _eval "$hook" "$@"; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user