summary refs log tree commit diff
path: root/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
diff options
context:
space:
mode:
authorDoron Behar <doron.behar@gmail.com>2021-10-02 01:19:29 +0300
committerTobias Bergkvist <tobias@bergkv.ist>2021-10-19 05:30:42 -0700
commita45c5db39128019ca0d37f3cca1cfa7450e9a894 (patch)
tree083545ae9f4e8532d8ee8377499d719ddd9242b7 /pkgs/build-support/setup-hooks/make-binary-wrapper.sh
parent4b833cc141172f88e563692f2458253212d1cf1a (diff)
downloadnixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar.gz
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar.bz2
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar.lz
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar.xz
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.tar.zst
nixpkgs-a45c5db39128019ca0d37f3cca1cfa7450e9a894.zip
makeBinaryWrapper: Assert $1 is executable
Diffstat (limited to 'pkgs/build-support/setup-hooks/make-binary-wrapper.sh')
-rw-r--r--pkgs/build-support/setup-hooks/make-binary-wrapper.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
index abc0e10631e..3948db7e4ee 100644
--- a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
@@ -1,3 +1,12 @@
+# Assert that FILE exists and is executable
+#
+# assertExecutable FILE
+assertExecutable() {
+    local file="$1"
+    [[ -f "$file" && -x "$file" ]] || \
+        die "Cannot wrap '$file' because it is not an executable file"
+}
+
 # Generate a binary executable wrapper for wrapping an executable.
 # The binary is compiled from generated C-code using gcc.
 # makeBinaryWrapper EXECUTABLE OUT_PATH ARGS
@@ -39,6 +48,7 @@ makeCWrapper() {
     local argv0 n params cmd main flagsBefore flags executable params length
     local uses_prefix uses_suffix uses_concat3
     executable=$(escapeStringLiteral "$1")
+    assertExecutable "$1"
     params=("$@")
     length=${#params[*]}
     for ((n = 1; n < length; n += 1)); do