Merge pull request #25185 from ahmedtd/fix-makewrapper-unsupported-args
Fix makewrapper unsupported args
This commit is contained in:
commit
b196230e71
21
pkgs/build-support/setup-hooks/die.sh
Normal file
21
pkgs/build-support/setup-hooks/die.sh
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Exit with backtrace and error message
|
||||||
|
#
|
||||||
|
# Usage: die "Error message"
|
||||||
|
die() {
|
||||||
|
# Let us be a little sloppy with errors, because otherwise the final
|
||||||
|
# invocation of `caller` below will cause the script to exit.
|
||||||
|
set +e
|
||||||
|
|
||||||
|
# Print our error message
|
||||||
|
printf "\nBuilder called die: %b\n" "$*"
|
||||||
|
printf "Backtrace:\n"
|
||||||
|
|
||||||
|
# Print a backtrace.
|
||||||
|
local frame=0
|
||||||
|
while caller $frame; do
|
||||||
|
((frame++));
|
||||||
|
done
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
|
@ -32,26 +32,20 @@ makeWrapper() {
|
||||||
for ((n = 2; n < ${#params[*]}; n += 1)); do
|
for ((n = 2; n < ${#params[*]}; n += 1)); do
|
||||||
p="${params[$n]}"
|
p="${params[$n]}"
|
||||||
|
|
||||||
if test "$p" = "--set"; then
|
if [[ "$p" == "--set" ]]; then
|
||||||
varName="${params[$((n + 1))]}"
|
varName="${params[$((n + 1))]}"
|
||||||
value="${params[$((n + 2))]}"
|
value="${params[$((n + 2))]}"
|
||||||
n=$((n + 2))
|
n=$((n + 2))
|
||||||
echo "export $varName=\"$value\"" >> "$wrapper"
|
echo "export $varName=\"$value\"" >> "$wrapper"
|
||||||
fi
|
elif [[ "$p" == "--unset" ]]; then
|
||||||
|
|
||||||
if test "$p" = "--unset"; then
|
|
||||||
varName="${params[$((n + 1))]}"
|
varName="${params[$((n + 1))]}"
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
echo "unset $varName" >> "$wrapper"
|
echo "unset $varName" >> "$wrapper"
|
||||||
fi
|
elif [[ "$p" == "--run" ]]; then
|
||||||
|
|
||||||
if test "$p" = "--run"; then
|
|
||||||
command="${params[$((n + 1))]}"
|
command="${params[$((n + 1))]}"
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
echo "$command" >> "$wrapper"
|
echo "$command" >> "$wrapper"
|
||||||
fi
|
elif [[ ("$p" == "--suffix") || ("$p" == "--prefix") ]]; then
|
||||||
|
|
||||||
if test "$p" = "--suffix" -o "$p" = "--prefix"; then
|
|
||||||
varName="${params[$((n + 1))]}"
|
varName="${params[$((n + 1))]}"
|
||||||
separator="${params[$((n + 2))]}"
|
separator="${params[$((n + 2))]}"
|
||||||
value="${params[$((n + 3))]}"
|
value="${params[$((n + 3))]}"
|
||||||
|
@ -63,9 +57,7 @@ makeWrapper() {
|
||||||
echo "export $varName=$value\${$varName:+$separator}\$$varName" >> "$wrapper"
|
echo "export $varName=$value\${$varName:+$separator}\$$varName" >> "$wrapper"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
elif [[ "$p" == "--suffix-each" ]]; then
|
||||||
|
|
||||||
if test "$p" = "--suffix-each"; then
|
|
||||||
varName="${params[$((n + 1))]}"
|
varName="${params[$((n + 1))]}"
|
||||||
separator="${params[$((n + 2))]}"
|
separator="${params[$((n + 2))]}"
|
||||||
values="${params[$((n + 3))]}"
|
values="${params[$((n + 3))]}"
|
||||||
|
@ -73,9 +65,7 @@ makeWrapper() {
|
||||||
for value in $values; do
|
for value in $values; do
|
||||||
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> "$wrapper"
|
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> "$wrapper"
|
||||||
done
|
done
|
||||||
fi
|
elif [[ ("$p" == "--suffix-contents") || ("$p" == "--prefix-contents") ]]; then
|
||||||
|
|
||||||
if test "$p" = "--suffix-contents" -o "$p" = "--prefix-contents"; then
|
|
||||||
varName="${params[$((n + 1))]}"
|
varName="${params[$((n + 1))]}"
|
||||||
separator="${params[$((n + 2))]}"
|
separator="${params[$((n + 2))]}"
|
||||||
fileNames="${params[$((n + 3))]}"
|
fileNames="${params[$((n + 3))]}"
|
||||||
|
@ -87,17 +77,15 @@ makeWrapper() {
|
||||||
echo "export $varName=$(cat "$fileName")\${$varName:+$separator}\$$varName" >> "$wrapper"
|
echo "export $varName=$(cat "$fileName")\${$varName:+$separator}\$$varName" >> "$wrapper"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
elif [[ "$p" == "--add-flags" ]]; then
|
||||||
|
|
||||||
if test "$p" = "--add-flags"; then
|
|
||||||
flags="${params[$((n + 1))]}"
|
flags="${params[$((n + 1))]}"
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
flagsBefore="$flagsBefore $flags"
|
flagsBefore="$flagsBefore $flags"
|
||||||
fi
|
elif [[ "$p" == "--argv0" ]]; then
|
||||||
|
|
||||||
if test "$p" = "--argv0"; then
|
|
||||||
argv0="${params[$((n + 1))]}"
|
argv0="${params[$((n + 1))]}"
|
||||||
n=$((n + 1))
|
n=$((n + 1))
|
||||||
|
else
|
||||||
|
die "makeWrapper doesn't understand the arg $p"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -138,5 +126,5 @@ wrapProgram() {
|
||||||
mv "$prog" "$hidden"
|
mv "$prog" "$hidden"
|
||||||
# Silence warning about unexpanded $0:
|
# Silence warning about unexpanded $0:
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
makeWrapper "$hidden" "$prog" --argv0 '$0' "$@"
|
makeWrapper "$hidden" "$prog" --argv0 '$0' "${@:2}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,6 +100,8 @@ with pkgs;
|
||||||
|
|
||||||
diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
|
diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
|
||||||
|
|
||||||
|
dieHook = makeSetupHook {} ../build-support/setup-hooks/die.sh;
|
||||||
|
|
||||||
dockerTools = callPackage ../build-support/docker { };
|
dockerTools = callPackage ../build-support/docker { };
|
||||||
|
|
||||||
docker_compose = pythonPackages.docker_compose;
|
docker_compose = pythonPackages.docker_compose;
|
||||||
|
@ -287,7 +289,8 @@ with pkgs;
|
||||||
inherit contents compressor prepend;
|
inherit contents compressor prepend;
|
||||||
};
|
};
|
||||||
|
|
||||||
makeWrapper = makeSetupHook { } ../build-support/setup-hooks/make-wrapper.sh;
|
makeWrapper = makeSetupHook { deps = [ dieHook ]; }
|
||||||
|
../build-support/setup-hooks/make-wrapper.sh;
|
||||||
|
|
||||||
makeModulesClosure = { kernel, rootModules, allowMissing ? false }:
|
makeModulesClosure = { kernel, rootModules, allowMissing ? false }:
|
||||||
callPackage ../build-support/kernel/modules-closure.nix {
|
callPackage ../build-support/kernel/modules-closure.nix {
|
||||||
|
|
Loading…
Reference in a new issue