diff --git a/sbt b/sbt index 12dee0e5d..680b7088d 100755 --- a/sbt +++ b/sbt @@ -139,16 +139,23 @@ jar_url () { download_url () { local url="$1" local jar="$2" + local exit_code mkdir -p $(dirname "$jar") && { if command -v curl > /dev/null; then - curl --silent -L "$url" --output "$jar" + curl --fail --silent -L "$url" --output "$jar" + exit_code=$? elif command -v wget > /dev/null; then wget --quiet -O "$jar" "$url" + exit_code=$? else echoerr "failed to download $url: Neither curl nor wget is available" exit 2 fi - } && [[ -f "$jar" ]] + $(exit "$exit_code") && [[ -f "$jar" ]] + } || { + echoerr "Error while fetching ${url}" + rm -f "$jar" + } } acquire_sbt_jar () { @@ -177,6 +184,7 @@ acquire_sbt_jar () { exit 2 fi else + echoerr "$(command shasum 2>&1 | grep -o 'shasum:.*') - JAR checksum verification SKIPPED!" mv "${download_jar}.temp" "${download_jar}" fi if [[ -f "$download_jar" ]]; then