diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-12-03 15:17:32 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-12-03 15:17:32 -0800 |
| commit | b388dc61a54de4b8d62fa069dfde0c67a469841a (patch) | |
| tree | c45ca184773b6e23fb101526ea1f311b26ece040 | |
| parent | 4f65d97bf8b4ec68ecba87ce75df1d6a6096a4e7 (diff) | |
| download | rust-b388dc61a54de4b8d62fa069dfde0c67a469841a.tar.gz rust-b388dc61a54de4b8d62fa069dfde0c67a469841a.zip | |
rustup: factor out downloading and extracting the snapshot tarballs
| -rwxr-xr-x | src/etc/rustup.sh | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 88bcc1916e7..8ca2390dda5 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -402,44 +402,61 @@ fi CFG_TMP_DIR="./rustup-tmp-install" +RUST_URL="https://static.rust-lang.org/dist" RUST_PACKAGE_NAME=rust-nightly RUST_PACKAGE_NAME_AND_TRIPLE="${RUST_PACKAGE_NAME}-${HOST_TRIPLE}" RUST_TARBALL_NAME="${RUST_PACKAGE_NAME_AND_TRIPLE}.tar.gz" -RUST_REMOTE_TARBALL="https://static.rust-lang.org/dist/${RUST_TARBALL_NAME}" -RUST_LOCAL_TARBALL="${CFG_TMP_DIR}/${RUST_TARBALL_NAME}" RUST_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${RUST_PACKAGE_NAME_AND_TRIPLE}" RUST_LOCAL_INSTALL_SCRIPT="${RUST_LOCAL_INSTALL_DIR}/install.sh" +CARGO_URL="https://static.rust-lang.org/cargo-dist" CARGO_PACKAGE_NAME=cargo-nightly CARGO_PACKAGE_NAME_AND_TRIPLE="${CARGO_PACKAGE_NAME}-${HOST_TRIPLE}" CARGO_TARBALL_NAME="${CARGO_PACKAGE_NAME_AND_TRIPLE}.tar.gz" -CARGO_REMOTE_TARBALL="https://static.rust-lang.org/cargo-dist/${CARGO_TARBALL_NAME}" -CARGO_LOCAL_TARBALL="${CFG_TMP_DIR}/${CARGO_TARBALL_NAME}" CARGO_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${CARGO_PACKAGE_NAME_AND_TRIPLE}" CARGO_LOCAL_INSTALL_SCRIPT="${CARGO_LOCAL_INSTALL_DIR}/install.sh" +# Fetch the package and extract it. +download_and_extract_package() { + remote_url="$1" + tarball_name="$2" + remote_tarball="${remote_url}/${tarball_name}" + local_tarball="${CFG_TMP_DIR}/${tarball_name}" + + msg "Downloading ${remote_tarball} to ${local_tarball}" + + mkdir -p "${CFG_TMP_DIR}" + need_ok "failed to create create download directory" + + "${CFG_CURL}" -f -o "${local_tarball}" "${remote_tarball}" + if [ $? -ne 0 ] + then + rm -Rf "${CFG_TMP_DIR}" + err "failed to download installer" + fi + + msg "Extracting ${tarball_name}" + (cd "${CFG_TMP_DIR}" && "${CFG_TAR}" -xvf "${tarball_name}") + if [ $? -ne 0 ]; then + rm -Rf "${CFG_TMP_DIR}" + err "failed to unpack installer" + fi +} + rm -Rf "${CFG_TMP_DIR}" need_ok "failed to remove temporary installation directory" mkdir -p "${CFG_TMP_DIR}" need_ok "failed to create create temporary installation directory" -msg "downloading rust installer" -"${CFG_CURL}" "${RUST_REMOTE_TARBALL}" > "${RUST_LOCAL_TARBALL}" -if [ $? -ne 0 ] -then - rm -Rf "${CFG_TMP_DIR}" - err "failed to download installer" -fi +download_and_extract_package \ + "${RUST_URL}" \ + "${RUST_TARBALL_NAME}" if [ -z "${CFG_DISABLE_CARGO}" ]; then - msg "downloading cargo installer" - "${CFG_CURL}" "${CARGO_REMOTE_TARBALL}" > "${CARGO_LOCAL_TARBALL}" - if [ $? -ne 0 ] - then - rm -Rf "${CFG_TMP_DIR}" - err "failed to download cargo installer" - fi + download_and_extract_package \ + "${CARGO_URL}" \ + "${CARGO_TARBALL_NAME}" fi |
