Skip to content

Commit b388dc6

Browse files
committed
rustup: factor out downloading and extracting the snapshot tarballs
1 parent 4f65d97 commit b388dc6

File tree

1 file changed

+35
-18
lines changed

1 file changed

+35
-18
lines changed

src/etc/rustup.sh

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -402,44 +402,61 @@ fi
402402

403403
CFG_TMP_DIR="./rustup-tmp-install"
404404

405+
RUST_URL="https://static.rust-lang.org/dist"
405406
RUST_PACKAGE_NAME=rust-nightly
406407
RUST_PACKAGE_NAME_AND_TRIPLE="${RUST_PACKAGE_NAME}-${HOST_TRIPLE}"
407408
RUST_TARBALL_NAME="${RUST_PACKAGE_NAME_AND_TRIPLE}.tar.gz"
408-
RUST_REMOTE_TARBALL="https://static.rust-lang.org/dist/${RUST_TARBALL_NAME}"
409-
RUST_LOCAL_TARBALL="${CFG_TMP_DIR}/${RUST_TARBALL_NAME}"
410409
RUST_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${RUST_PACKAGE_NAME_AND_TRIPLE}"
411410
RUST_LOCAL_INSTALL_SCRIPT="${RUST_LOCAL_INSTALL_DIR}/install.sh"
412411

412+
CARGO_URL="https://static.rust-lang.org/cargo-dist"
413413
CARGO_PACKAGE_NAME=cargo-nightly
414414
CARGO_PACKAGE_NAME_AND_TRIPLE="${CARGO_PACKAGE_NAME}-${HOST_TRIPLE}"
415415
CARGO_TARBALL_NAME="${CARGO_PACKAGE_NAME_AND_TRIPLE}.tar.gz"
416-
CARGO_REMOTE_TARBALL="https://static.rust-lang.org/cargo-dist/${CARGO_TARBALL_NAME}"
417-
CARGO_LOCAL_TARBALL="${CFG_TMP_DIR}/${CARGO_TARBALL_NAME}"
418416
CARGO_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${CARGO_PACKAGE_NAME_AND_TRIPLE}"
419417
CARGO_LOCAL_INSTALL_SCRIPT="${CARGO_LOCAL_INSTALL_DIR}/install.sh"
420418

419+
# Fetch the package and extract it.
420+
download_and_extract_package() {
421+
remote_url="$1"
422+
tarball_name="$2"
423+
remote_tarball="${remote_url}/${tarball_name}"
424+
local_tarball="${CFG_TMP_DIR}/${tarball_name}"
425+
426+
msg "Downloading ${remote_tarball} to ${local_tarball}"
427+
428+
mkdir -p "${CFG_TMP_DIR}"
429+
need_ok "failed to create create download directory"
430+
431+
"${CFG_CURL}" -f -o "${local_tarball}" "${remote_tarball}"
432+
if [ $? -ne 0 ]
433+
then
434+
rm -Rf "${CFG_TMP_DIR}"
435+
err "failed to download installer"
436+
fi
437+
438+
msg "Extracting ${tarball_name}"
439+
(cd "${CFG_TMP_DIR}" && "${CFG_TAR}" -xvf "${tarball_name}")
440+
if [ $? -ne 0 ]; then
441+
rm -Rf "${CFG_TMP_DIR}"
442+
err "failed to unpack installer"
443+
fi
444+
}
445+
421446
rm -Rf "${CFG_TMP_DIR}"
422447
need_ok "failed to remove temporary installation directory"
423448

424449
mkdir -p "${CFG_TMP_DIR}"
425450
need_ok "failed to create create temporary installation directory"
426451

427-
msg "downloading rust installer"
428-
"${CFG_CURL}" "${RUST_REMOTE_TARBALL}" > "${RUST_LOCAL_TARBALL}"
429-
if [ $? -ne 0 ]
430-
then
431-
rm -Rf "${CFG_TMP_DIR}"
432-
err "failed to download installer"
433-
fi
452+
download_and_extract_package \
453+
"${RUST_URL}" \
454+
"${RUST_TARBALL_NAME}"
434455

435456
if [ -z "${CFG_DISABLE_CARGO}" ]; then
436-
msg "downloading cargo installer"
437-
"${CFG_CURL}" "${CARGO_REMOTE_TARBALL}" > "${CARGO_LOCAL_TARBALL}"
438-
if [ $? -ne 0 ]
439-
then
440-
rm -Rf "${CFG_TMP_DIR}"
441-
err "failed to download cargo installer"
442-
fi
457+
download_and_extract_package \
458+
"${CARGO_URL}" \
459+
"${CARGO_TARBALL_NAME}"
443460
fi
444461

445462

0 commit comments

Comments
 (0)