From 4ca67bdbffaf626d9f18bbf11a237ec57c484ca2 Mon Sep 17 00:00:00 2001 From: "George L. Yermulnik" Date: Wed, 25 Mar 2026 11:59:11 +0200 Subject: [PATCH 1/4] chore(public/sendme.sh): Wrap vars and add verbosity Related to #318 * Wrap cmdline params to prevent globbing and word splitting * Add verbosity to `tar` to allow user to see where the binary is unpacked to --- public/sendme.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/sendme.sh b/public/sendme.sh index 7e84bf8a..8a310870 100644 --- a/public/sendme.sh +++ b/public/sendme.sh @@ -35,11 +35,11 @@ case "$release_target_url" in grep "$target" | sed -re 's/.*: "([^"]+)".*/\1/' \ ) - curl -sL "$release_target_url" -o $release_archive - unzip -oq $release_archive - rm -rf $release_archive + curl -sL "$release_target_url" -o "$release_archive" + unzip -oq "$release_archive" + rm -rf "$release_archive" ;; *) - curl -sL "$release_target_url" | tar xz + curl -sL "$release_target_url" | tar vxz ;; esac From a72d4a4c50719d8b533b3545a2fb4927a60f4b35 Mon Sep 17 00:00:00 2001 From: "George L. Yermulnik" Date: Wed, 25 Mar 2026 12:11:17 +0200 Subject: [PATCH 2/4] Address GH Copilot suggestions and add a bit more verbosity --- public/sendme.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) mode change 100644 => 100755 public/sendme.sh diff --git a/public/sendme.sh b/public/sendme.sh old mode 100644 new mode 100755 index 8a310870..7dbeb6c7 --- a/public/sendme.sh +++ b/public/sendme.sh @@ -27,6 +27,7 @@ release_target_url=$( sed -re 's/.*: "([^"]+)".*/\1/' \ ) +echo "Extracting ${release_target_url##*/} to current directory" case "$release_target_url" in *.zip) release_archive=$( @@ -37,9 +38,9 @@ case "$release_target_url" in ) curl -sL "$release_target_url" -o "$release_archive" unzip -oq "$release_archive" - rm -rf "$release_archive" + rm -f -- "$release_archive" ;; *) - curl -sL "$release_target_url" | tar vxz + curl -sL "$release_target_url" | tar vxz -f - ;; esac From 6d750d0e2250e2c118189916de58e646faf62a28 Mon Sep 17 00:00:00 2001 From: "George L. Yermulnik" Date: Wed, 25 Mar 2026 12:28:11 +0200 Subject: [PATCH 3/4] Make `grep`'ing more robust, fail if no release, add verbosity to `unzip` --- public/sendme.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/public/sendme.sh b/public/sendme.sh index 7dbeb6c7..2452421b 100755 --- a/public/sendme.sh +++ b/public/sendme.sh @@ -22,22 +22,22 @@ fi echo "Downloading $repo for $target" release_target_url=$( curl -s "$release_url" | - grep "browser_download_url" | - grep "$target" | - sed -re 's/.*: "([^"]+)".*/\1/' \ + grep '"browser_download_url":' | + grep -- "-$target." | + sed -re 's/^.+: "([^"]+)"$/\1/' ) +if [ -z "$release_target_url" ]; then + echo "Error: No release found for target $target" + exit 1 +fi + echo "Extracting ${release_target_url##*/} to current directory" case "$release_target_url" in *.zip) - release_archive=$( - curl -s "$release_url" | - grep "name" | - grep "$target" | - sed -re 's/.*: "([^"]+)".*/\1/' \ - ) + release_archive="${release_target_url##*/}" curl -sL "$release_target_url" -o "$release_archive" - unzip -oq "$release_archive" + unzip -o "$release_archive" rm -f -- "$release_archive" ;; *) From 241859a9275e8a46979b030f29b4e3f49f28684a Mon Sep 17 00:00:00 2001 From: "George L. Yermulnik" Date: Wed, 25 Mar 2026 12:34:06 +0200 Subject: [PATCH 4/4] Add more details when release is not found --- public/sendme.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/sendme.sh b/public/sendme.sh index 2452421b..81b21a27 100755 --- a/public/sendme.sh +++ b/public/sendme.sh @@ -28,7 +28,7 @@ release_target_url=$( ) if [ -z "$release_target_url" ]; then - echo "Error: No release found for target $target" + echo "Error: No release found for target $target (ensure API rate limits are not exceeded)" exit 1 fi