From a927332bd9d1f153b9b0010085ff24861a45bc92 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Tue, 26 Feb 2019 21:29:01 +0100 Subject: [PATCH] build-package: mv termux_download to scripts/build/ --- build-package.sh | 44 +---------------------------- scripts/build/termux_download.sh | 48 ++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 43 deletions(-) create mode 100755 scripts/build/termux_download.sh diff --git a/build-package.sh b/build-package.sh index 2a8822163..ab94c565a 100755 --- a/build-package.sh +++ b/build-package.sh @@ -7,49 +7,7 @@ set -e -o pipefail -u source scripts/build/termux_error_exit.sh # Utility function to download a resource with an expected checksum. -termux_download() { - if [ $# != 3 ]; then - termux_error_exit "termux_download(): Invalid arguments - expected \$URL \$DESTINATION \$CHECKSUM" - fi - local URL="$1" - local DESTINATION="$2" - local CHECKSUM="$3" - - if [ -f "$DESTINATION" ] && [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then - # Keep existing file if checksum matches. - local EXISTING_CHECKSUM - EXISTING_CHECKSUM=$(sha256sum "$DESTINATION" | cut -f 1 -d ' ') - if [ "$EXISTING_CHECKSUM" = "$CHECKSUM" ]; then return; fi - fi - - local TMPFILE - TMPFILE=$(mktemp "$TERMUX_PKG_TMPDIR/download.$TERMUX_PKG_NAME.XXXXXXXXX") - echo "Downloading ${URL}" - local TRYMAX=6 - for try in $(seq 1 $TRYMAX); do - if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then - local ACTUAL_CHECKSUM - ACTUAL_CHECKSUM=$(sha256sum "$TMPFILE" | cut -f 1 -d ' ') - if [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then - if [ "$CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then - >&2 printf "Wrong checksum for %s:\nExpected: %s\nActual: %s\n" \ - "$URL" "$CHECKSUM" "$ACTUAL_CHECKSUM" - exit 1 - fi - else - printf "WARNING: No checksum check for %s:\nActual: %s\n" \ - "$URL" "$ACTUAL_CHECKSUM" - fi - mv "$TMPFILE" "$DESTINATION" - return - else - echo "Download of $URL failed (attempt $try/$TRYMAX)" 1>&2 - sleep 45 - fi - done - - termux_error_exit "Failed to download $URL" -} +source scripts/build/termux_download.sh # Utility function for golang-using packages to setup a go toolchain. termux_setup_golang() { diff --git a/scripts/build/termux_download.sh b/scripts/build/termux_download.sh new file mode 100755 index 000000000..4f729d506 --- /dev/null +++ b/scripts/build/termux_download.sh @@ -0,0 +1,48 @@ +termux_download() { + if [ $# != 3 ]; then + termux_error_exit "termux_download(): Invalid arguments - expected \$URL \$DESTINATION \$CHECKSUM" + fi + local URL="$1" + local DESTINATION="$2" + local CHECKSUM="$3" + + if [ -f "$DESTINATION" ] && [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then + # Keep existing file if checksum matches. + local EXISTING_CHECKSUM + EXISTING_CHECKSUM=$(sha256sum "$DESTINATION" | cut -f 1 -d ' ') + if [ "$EXISTING_CHECKSUM" = "$CHECKSUM" ]; then return; fi + fi + + local TMPFILE + TMPFILE=$(mktemp "$TERMUX_PKG_TMPDIR/download.$TERMUX_PKG_NAME.XXXXXXXXX") + echo "Downloading ${URL}" + local TRYMAX=6 + for try in $(seq 1 $TRYMAX); do + if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then + local ACTUAL_CHECKSUM + ACTUAL_CHECKSUM=$(sha256sum "$TMPFILE" | cut -f 1 -d ' ') + if [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then + if [ "$CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then + >&2 printf "Wrong checksum for %s:\nExpected: %s\nActual: %s\n" \ + "$URL" "$CHECKSUM" "$ACTUAL_CHECKSUM" + exit 1 + fi + else + printf "WARNING: No checksum check for %s:\nActual: %s\n" \ + "$URL" "$ACTUAL_CHECKSUM" + fi + mv "$TMPFILE" "$DESTINATION" + return + else + echo "Download of $URL failed (attempt $try/$TRYMAX)" 1>&2 + sleep 45 + fi + done + + termux_error_exit "Failed to download $URL" +} + +# Make script standalone executable as well as sourceable +if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then + termux_download "$@" +fi