From c310cb0d941cfaaf265e895f41b97db19eb9c69d Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 Oct 2021 01:20:25 +0300 Subject: [PATCH] makeBinaryWrapper: add wrapProgramBinary (like wrapProgram) --- .../setup-hooks/make-binary-wrapper.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh index 3948db7e4eea..c8a8aef36097 100644 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh +++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh @@ -30,6 +30,23 @@ makeBinaryWrapper() { makeDocumentedCWrapper "$1" "${@:3}" | gcc -Os -x c -o "$2" - } +# Syntax: wrapProgramBinary +wrapProgramBinary() { + local prog="$1" + local hidden + + assertExecutable "$prog" + + hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped + while [ -e "$hidden" ]; do + hidden="${hidden}_" + done + mv "$prog" "$hidden" + # Silence warning about unexpanded $0: + # shellcheck disable=SC2016 + makeBinaryWrapper "$hidden" "$prog" --argv0 '$0' "${@:2}" +} + # Generate source code for the wrapper in such a way that the wrapper source code # will still be readable even after compilation # makeDocumentedCWrapper EXECUTABLE ARGS