#!/usr/bin/env bash # We want to catch any unexpected failure, and exit immediately set -e # Download helper for wget, to be called from the download wrapper script # # Options: # -q Be quiet. # -o FILE Save into file FILE. # -f FILENAME The filename of the tarball to get at URL # -u URL Download file at URL. # -e ENCODE Tell wget to urlencode the filename passed to it # # Environment: # WGET : the wget command to call verbose= while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do case "${OPT}" in q) verbose=-q;; o) output="${OPTARG}";; f) filename="${OPTARG}";; u) url="${OPTARG}";; e) encode="-e";; :) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;; \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;; esac done shift $((OPTIND-1)) # Get rid of our options # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _wget() { eval ${WGET} "${@}" } # Replace every '?' with '%3F' in the filename; only for the PRIMARY and BACKUP # mirror [ -n "${encode}" ] && filename=${filename//\?/%3F} _wget ${verbose} "${@}" -O "'${output}'" "'${url}/${filename}'"