From c7ae4a9664802582c4bc14be107d28b8257aeb91 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 19:39:26 -0800 Subject: [PATCH 01/11] whitespace cleanup --- src/etc/rustup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 4829e15fb0ffa..f73a0248c8516 100644 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -188,7 +188,7 @@ flag() { fi } -validate_opt () { +validate_opt() { for arg in $CFG_ARGS do isArgValid=0 From 3b4ad726f1d9982a91693e36bfce51b1013f16c4 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 21:17:08 -0800 Subject: [PATCH 02/11] rustup: make rustup executable --- src/etc/rustup.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 src/etc/rustup.sh diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh old mode 100644 new mode 100755 From 98f01f1f5481f12796d2c7b57f36e998b1e644f0 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 19:51:52 -0800 Subject: [PATCH 03/11] rustup: probe for the existance of tar --- src/etc/rustup.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index f73a0248c8516..52489412071ca 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -230,6 +230,7 @@ validate_opt() { } probe_need CFG_CURL curl +probe_need CFG_TAR tar CFG_SRC_DIR="$(cd $(dirname $0) && pwd)/" CFG_SELF="$0" @@ -430,7 +431,7 @@ if [ -z "${CFG_DISABLE_CARGO}" ]; then fi -(cd "${TMP_DIR}" && tar xzf "${TARBALL_NAME}") +(cd "${TMP_DIR}" && ${CFG_TAR} xzf "${TARBALL_NAME}") if [ $? -ne 0 ] then rm -Rf "${TMP_DIR}" @@ -457,7 +458,7 @@ then fi if [ -z "${CFG_DISABLE_CARGO}" ]; then - (cd "${TMP_DIR}" && tar xzf "${CARGO_TARBALL_NAME}") + (cd "${TMP_DIR}" && ${CFG_TAR} xzf "${CARGO_TARBALL_NAME}") if [ $? -ne 0 ] then rm -Rf "${TMP_DIR}" From e688eb3b4fcf4c5a22c4e69a2216d8d48a4109aa Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 20:06:24 -0800 Subject: [PATCH 04/11] rustup: add a RUST_ prefix to the rust-specific variables --- src/etc/rustup.sh | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 52489412071ca..03eb518272c51 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -389,14 +389,15 @@ esac msg "host triple: ${HOST_TRIPLE}" -PACKAGE_NAME=rust-nightly -PACKAGE_NAME_AND_TRIPLE="${PACKAGE_NAME}-${HOST_TRIPLE}" -TARBALL_NAME="${PACKAGE_NAME_AND_TRIPLE}.tar.gz" -REMOTE_TARBALL="https://static.rust-lang.org/dist/${TARBALL_NAME}" TMP_DIR="./rustup-tmp-install" -LOCAL_TARBALL="${TMP_DIR}/${TARBALL_NAME}" -LOCAL_INSTALL_DIR="${TMP_DIR}/${PACKAGE_NAME_AND_TRIPLE}" -LOCAL_INSTALL_SCRIPT="${LOCAL_INSTALL_DIR}/install.sh" + +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="${TMP_DIR}/${RUST_TARBALL_NAME}" +RUST_LOCAL_INSTALL_DIR="${TMP_DIR}/${RUST_PACKAGE_NAME_AND_TRIPLE}" +RUST_LOCAL_INSTALL_SCRIPT="${RUST_LOCAL_INSTALL_DIR}/install.sh" CARGO_PACKAGE_NAME=cargo-nightly CARGO_PACKAGE_NAME_AND_TRIPLE="${CARGO_PACKAGE_NAME}-${HOST_TRIPLE}" @@ -413,7 +414,7 @@ mkdir -p "${TMP_DIR}" need_ok "failed to create create temporary installation directory" msg "downloading rust installer" -"${CFG_CURL}" "${REMOTE_TARBALL}" > "${LOCAL_TARBALL}" +"${CFG_CURL}" "${RUST_REMOTE_TARBALL}" > "${RUST_LOCAL_TARBALL}" if [ $? -ne 0 ] then rm -Rf "${TMP_DIR}" @@ -431,7 +432,7 @@ if [ -z "${CFG_DISABLE_CARGO}" ]; then fi -(cd "${TMP_DIR}" && ${CFG_TAR} xzf "${TARBALL_NAME}") +(cd "${TMP_DIR}" && ${CFG_TAR} xzf "${RUST_TARBALL_NAME}") if [ $? -ne 0 ] then rm -Rf "${TMP_DIR}" @@ -450,7 +451,7 @@ then MAYBE_PREFIX="--prefix=${CFG_PREFIX}" fi -sh "${LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" +sh "${RUST_LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" if [ $? -ne 0 ] then rm -Rf "${TMP_DIR}" From fcb31e834716be12b98390eab921d5b7d39098de Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 20:08:06 -0800 Subject: [PATCH 05/11] rustup: rename TMP_DIR to CFG_TMP_DIR --- src/etc/rustup.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 03eb518272c51..a0436f23e4077 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -389,35 +389,35 @@ esac msg "host triple: ${HOST_TRIPLE}" -TMP_DIR="./rustup-tmp-install" +CFG_TMP_DIR="./rustup-tmp-install" 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="${TMP_DIR}/${RUST_TARBALL_NAME}" -RUST_LOCAL_INSTALL_DIR="${TMP_DIR}/${RUST_PACKAGE_NAME_AND_TRIPLE}" +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_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="${TMP_DIR}/${CARGO_TARBALL_NAME}" -CARGO_LOCAL_INSTALL_DIR="${TMP_DIR}/${CARGO_PACKAGE_NAME_AND_TRIPLE}" +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" -rm -Rf "${TMP_DIR}" +rm -Rf "${CFG_TMP_DIR}" need_ok "failed to remove temporary installation directory" -mkdir -p "${TMP_DIR}" +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 "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to download installer" fi @@ -426,16 +426,16 @@ if [ -z "${CFG_DISABLE_CARGO}" ]; then "${CFG_CURL}" "${CARGO_REMOTE_TARBALL}" > "${CARGO_LOCAL_TARBALL}" if [ $? -ne 0 ] then - rm -Rf "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to download cargo installer" fi fi -(cd "${TMP_DIR}" && ${CFG_TAR} xzf "${RUST_TARBALL_NAME}") +(cd "${CFG_TMP_DIR}" && ${CFG_TAR} xzf "${RUST_TARBALL_NAME}") if [ $? -ne 0 ] then - rm -Rf "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to unpack installer" fi @@ -454,25 +454,25 @@ fi sh "${RUST_LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" if [ $? -ne 0 ] then - rm -Rf "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to install Rust" fi if [ -z "${CFG_DISABLE_CARGO}" ]; then - (cd "${TMP_DIR}" && ${CFG_TAR} xzf "${CARGO_TARBALL_NAME}") + (cd "${CFG_TMP_DIR}" && ${CFG_TAR} xzf "${CARGO_TARBALL_NAME}") if [ $? -ne 0 ] then - rm -Rf "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to unpack cargo installer" fi sh "${CARGO_LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" if [ $? -ne 0 ] then - rm -Rf "${TMP_DIR}" + rm -Rf "${CFG_TMP_DIR}" err "failed to install Cargo" fi fi -rm -Rf "${TMP_DIR}" +rm -Rf "${CFG_TMP_DIR}" need_ok "couldn't rm temporary installation directory" From 4f65d97bf8b4ec68ecba87ce75df1d6a6096a4e7 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 20:13:31 -0800 Subject: [PATCH 06/11] rustup: factor out the install flags into a CFG_INSTALL_FLAGS variable --- src/etc/rustup.sh | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index a0436f23e4077..88bcc1916e775 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -389,6 +389,17 @@ esac msg "host triple: ${HOST_TRIPLE}" +CFG_INSTALL_FLAGS="" +if [ -n "${CFG_UNINSTALL}" ] +then + CFG_INSTALL_FLAGS="${CFG_INSTALL_FLAGS} --uninstall" +fi + +if [ -n "${CFG_PREFIX}" ] +then + CFG_INSTALL_FLAGS="${CFG_INSTALL_FLAGS} --prefix=${CFG_PREFIX}" +fi + CFG_TMP_DIR="./rustup-tmp-install" RUST_PACKAGE_NAME=rust-nightly @@ -439,19 +450,7 @@ then err "failed to unpack installer" fi -MAYBE_UNINSTALL= -if [ -n "${CFG_UNINSTALL}" ] -then - MAYBE_UNINSTALL="--uninstall" -fi - -MAYBE_PREFIX= -if [ -n "${CFG_PREFIX}" ] -then - MAYBE_PREFIX="--prefix=${CFG_PREFIX}" -fi - -sh "${RUST_LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" +sh "${RUST_LOCAL_INSTALL_SCRIPT}" "${CFG_INSTALL_FLAGS}" if [ $? -ne 0 ] then rm -Rf "${CFG_TMP_DIR}" @@ -466,7 +465,7 @@ if [ -z "${CFG_DISABLE_CARGO}" ]; then err "failed to unpack cargo installer" fi - sh "${CARGO_LOCAL_INSTALL_SCRIPT}" "${MAYBE_UNINSTALL}" "${MAYBE_PREFIX}" + sh "${CARGO_LOCAL_INSTALL_SCRIPT}" "${CFG_INSTALL_FLAGS}" if [ $? -ne 0 ] then rm -Rf "${CFG_TMP_DIR}" From b388dc61a54de4b8d62fa069dfde0c67a469841a Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 3 Dec 2014 15:17:32 -0800 Subject: [PATCH 07/11] rustup: factor out downloading and extracting the snapshot tarballs --- src/etc/rustup.sh | 53 +++++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 88bcc1916e775..8ca2390dda553 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 From 8ca8e6fa4d3a7dc1a40e958cfa4ca62096bfa509 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 20:44:03 -0800 Subject: [PATCH 08/11] rustup: factor out installing packages into a function --- src/etc/rustup.sh | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 8ca2390dda553..311c1c3f15ef7 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -443,6 +443,18 @@ download_and_extract_package() { fi } +# Wrap all the commands needed to install a package. +install_package() { + install_script="$1" + + sh "${install_script}" "${CFG_INSTALL_FLAGS}" + if [ $? -ne 0 ] + then + rm -Rf "${CFG_TMP_DIR}" + err "failed to install Rust" + fi +} + rm -Rf "${CFG_TMP_DIR}" need_ok "failed to remove temporary installation directory" @@ -459,35 +471,10 @@ if [ -z "${CFG_DISABLE_CARGO}" ]; then "${CARGO_TARBALL_NAME}" fi - -(cd "${CFG_TMP_DIR}" && ${CFG_TAR} xzf "${RUST_TARBALL_NAME}") -if [ $? -ne 0 ] -then - rm -Rf "${CFG_TMP_DIR}" - err "failed to unpack installer" -fi - -sh "${RUST_LOCAL_INSTALL_SCRIPT}" "${CFG_INSTALL_FLAGS}" -if [ $? -ne 0 ] -then - rm -Rf "${CFG_TMP_DIR}" - err "failed to install Rust" -fi +install_package "${RUST_LOCAL_INSTALL_SCRIPT}" if [ -z "${CFG_DISABLE_CARGO}" ]; then - (cd "${CFG_TMP_DIR}" && ${CFG_TAR} xzf "${CARGO_TARBALL_NAME}") - if [ $? -ne 0 ] - then - rm -Rf "${CFG_TMP_DIR}" - err "failed to unpack cargo installer" - fi - - sh "${CARGO_LOCAL_INSTALL_SCRIPT}" "${CFG_INSTALL_FLAGS}" - if [ $? -ne 0 ] - then - rm -Rf "${CFG_TMP_DIR}" - err "failed to install Cargo" - fi + install_package "${CARGO_LOCAL_INSTALL_SCRIPT}" fi rm -Rf "${CFG_TMP_DIR}" From bd8dac8f758fc76ff3c4553e187eba627728cf71 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Sun, 30 Nov 2014 23:34:19 -0800 Subject: [PATCH 09/11] rustup: rewrite to protect against truncation This closes #19168. It's possible that if the downloading of `rustup.sh` is interrupted, bad things could happen, such as running a naked "rm -rf /" instead of "rm -rf /path/to/tmpdir". This wraps rustup.sh's functionality in a function that gets called at the last time that should protect us from these truncation errors. --- src/etc/rustup.sh | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 311c1c3f15ef7..85fe829c25a6d 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -455,27 +455,37 @@ install_package() { fi } -rm -Rf "${CFG_TMP_DIR}" -need_ok "failed to remove temporary installation directory" +# It's possible that curl could be interrupted partway though downloading +# `rustup.sh`, truncating the file. This could be especially bad if we were in +# the middle of a line that would run "rm -rf ". To protect against this, we +# wrap up the `rustup.sh` destructive functionality in this helper function, +# which we call as the last thing we do. This means we will not do anything +# unless we have the entire file downloaded. +install_packages() { + 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" - -download_and_extract_package \ - "${RUST_URL}" \ - "${RUST_TARBALL_NAME}" + mkdir -p "${CFG_TMP_DIR}" + need_ok "failed to create create temporary installation directory" -if [ -z "${CFG_DISABLE_CARGO}" ]; then download_and_extract_package \ - "${CARGO_URL}" \ - "${CARGO_TARBALL_NAME}" -fi + "${RUST_URL}" \ + "${RUST_TARBALL_NAME}" -install_package "${RUST_LOCAL_INSTALL_SCRIPT}" + if [ -z "${CFG_DISABLE_CARGO}" ]; then + download_and_extract_package \ + "${CARGO_URL}" \ + "${CARGO_TARBALL_NAME}" + fi -if [ -z "${CFG_DISABLE_CARGO}" ]; then - install_package "${CARGO_LOCAL_INSTALL_SCRIPT}" -fi + install_package "${RUST_LOCAL_INSTALL_SCRIPT}" + + if [ -z "${CFG_DISABLE_CARGO}" ]; then + install_package "${CARGO_LOCAL_INSTALL_SCRIPT}" + fi + + rm -Rf "${CFG_TMP_DIR}" + need_ok "couldn't rm temporary installation directory" +} -rm -Rf "${CFG_TMP_DIR}" -need_ok "couldn't rm temporary installation directory" +install_packages From 694500b07d185f94dbaa47949ac664f55fd2e48b Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 1 Dec 2014 00:00:43 -0800 Subject: [PATCH 10/11] rustup: extract the tarballs as part of installation --- src/etc/rustup.sh | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 85fe829c25a6d..869031e03c303 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -416,8 +416,8 @@ CARGO_TARBALL_NAME="${CARGO_PACKAGE_NAME_AND_TRIPLE}.tar.gz" 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() { +# Fetch the package. +download_package() { remote_url="$1" tarball_name="$2" remote_tarball="${remote_url}/${tarball_name}" @@ -434,6 +434,12 @@ download_and_extract_package() { rm -Rf "${CFG_TMP_DIR}" err "failed to download installer" fi +} + +# Wrap all the commands needed to install a package. +install_package() { + tarball_name="$1" + install_script="$2" msg "Extracting ${tarball_name}" (cd "${CFG_TMP_DIR}" && "${CFG_TAR}" -xvf "${tarball_name}") @@ -441,11 +447,6 @@ download_and_extract_package() { rm -Rf "${CFG_TMP_DIR}" err "failed to unpack installer" fi -} - -# Wrap all the commands needed to install a package. -install_package() { - install_script="$1" sh "${install_script}" "${CFG_INSTALL_FLAGS}" if [ $? -ne 0 ] @@ -468,20 +469,24 @@ install_packages() { mkdir -p "${CFG_TMP_DIR}" need_ok "failed to create create temporary installation directory" - download_and_extract_package \ + download_package \ "${RUST_URL}" \ "${RUST_TARBALL_NAME}" if [ -z "${CFG_DISABLE_CARGO}" ]; then - download_and_extract_package \ + download_package \ "${CARGO_URL}" \ "${CARGO_TARBALL_NAME}" fi - install_package "${RUST_LOCAL_INSTALL_SCRIPT}" + install_package \ + "${RUST_TARBALL_NAME}" \ + "${RUST_LOCAL_INSTALL_SCRIPT}" if [ -z "${CFG_DISABLE_CARGO}" ]; then - install_package "${CARGO_LOCAL_INSTALL_SCRIPT}" + install_package \ + "${CARGO_TARBALL_NAME}" \ + "${CARGO_LOCAL_INSTALL_SCRIPT}" fi rm -Rf "${CFG_TMP_DIR}" From f86737973ac65a5c9d6c60d74acccfcfe0175fb4 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 3 Dec 2014 15:14:30 -0800 Subject: [PATCH 11/11] rustup: simplify downloading packages --- src/etc/rustup.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 869031e03c303..b610bc65b09c6 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -418,10 +418,8 @@ CARGO_LOCAL_INSTALL_SCRIPT="${CARGO_LOCAL_INSTALL_DIR}/install.sh" # Fetch the package. download_package() { - remote_url="$1" - tarball_name="$2" - remote_tarball="${remote_url}/${tarball_name}" - local_tarball="${CFG_TMP_DIR}/${tarball_name}" + remote_tarball="$1" + local_tarball="$2" msg "Downloading ${remote_tarball} to ${local_tarball}" @@ -469,14 +467,17 @@ install_packages() { mkdir -p "${CFG_TMP_DIR}" need_ok "failed to create create temporary installation directory" + RUST_LOCAL_TARBALL="${CFG_TMP_DIR}/${RUST_TARBALL_NAME}" + CARGO_LOCAL_TARBALL="${CFG_TMP_DIR}/${CARGO_TARBALL_NAME}" + download_package \ - "${RUST_URL}" \ - "${RUST_TARBALL_NAME}" + "${RUST_URL}/${RUST_TARBALL_NAME}" \ + "${RUST_LOCAL_TARBALL}" if [ -z "${CFG_DISABLE_CARGO}" ]; then download_package \ - "${CARGO_URL}" \ - "${CARGO_TARBALL_NAME}" + "${CARGO_URL}/${CARGO_TARBALL_NAME}" \ + "${CARGO_LOCAL_TARBALL}" fi install_package \