From f4555e86823304757f9b447e722a0c118fa8a024 Mon Sep 17 00:00:00 2001 From: Conny Brunnkvist Date: Mon, 13 Sep 2021 16:53:47 +0700 Subject: [PATCH 1/3] Prevent curl from masking certain download errors An attempt at fixing #6654 --- sbt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbt b/sbt index 6403c4414..0a2ae9380 100755 --- a/sbt +++ b/sbt @@ -118,7 +118,7 @@ download_url () { local jar="$2" mkdir -p $(dirname "$jar") && { if command -v curl > /dev/null; then - curl --silent -L "$url" --output "$jar" + curl --fail --silent -L "$url" --output "$jar" elif command -v wget > /dev/null; then wget --quiet -O "$jar" "$url" fi @@ -151,6 +151,7 @@ acquire_sbt_jar () { exit 2 fi else + echoerr "('shasum' missing on path - $launcher_sv integrity check SKIPPED!)" mv "${download_jar}.temp" "${download_jar}" fi if [[ -f "$download_jar" ]]; then From 97247845fe921a98be07efdde0bb97ea6d50bde7 Mon Sep 17 00:00:00 2001 From: Conny Brunnkvist Date: Mon, 13 Sep 2021 18:35:31 +0700 Subject: [PATCH 2/3] Detect launcher download error earlier (and clean up failed downloads) --- sbt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sbt b/sbt index 0a2ae9380..91ac48f9b 100755 --- a/sbt +++ b/sbt @@ -116,13 +116,20 @@ 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 --fail --silent -L "$url" --output "$jar" + exit_code=$? elif command -v wget > /dev/null; then wget --quiet -O "$jar" "$url" + exit_code=$? fi - } && [[ -f "$jar" ]] + $(exit "$exit_code") && [[ -f "$jar" ]] + } || { + echoerr "Error while fetching ${url}" + rm -f "$jar" + } } acquire_sbt_jar () { From 0fd590ffdabc9b255b2e32803cfeb03fd209d349 Mon Sep 17 00:00:00 2001 From: Conny Brunnkvist Date: Mon, 13 Sep 2021 18:36:49 +0700 Subject: [PATCH 3/3] Be more transparent when `shasum` is unavailable --- sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbt b/sbt index 91ac48f9b..387215b04 100755 --- a/sbt +++ b/sbt @@ -158,7 +158,7 @@ acquire_sbt_jar () { exit 2 fi else - echoerr "('shasum' missing on path - $launcher_sv integrity check SKIPPED!)" + echoerr "$(command shasum 2>&1 | grep -o 'shasum:.*') - JAR checksum verification SKIPPED!" mv "${download_jar}.temp" "${download_jar}" fi if [[ -f "$download_jar" ]]; then