diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index ee62cfe8cee93..fa163b23529f5 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -272,6 +272,8 @@ flag uninstall "only uninstall from the installation prefix" valopt prefix "" "set installation prefix" opt cargo 1 "install cargo with rust" valopt date "" "use the YYYY-MM-DD nightly instead of the current nightly" +valopt rust-date "" "use the YYYY-MM-DD rust nightly instead of the current nightly" +valopt cargo-date "" "use the YYYY-MM-DD cargo nightly instead of the current nightly" flag save "save the downloaded nightlies to ~/.rustup" if [ $HELP -eq 1 ] @@ -427,12 +429,12 @@ then CFG_DATE=`date "+%Y-%m-%d"` fi -# If we're saving our nightlies, put them in $HOME/.rustup. -if [ -n "${CFG_SAVE}" ] -then - CFG_DOWNLOAD_DIR="${HOME}/.rustup/${CFG_DATE}" -else - CFG_DOWNLOAD_DIR="${CFG_TMP_DIR}" +if [ -z "${CFG_RUST_DATE}" ]; then + CFG_RUST_DATE="${CFG_DATE}" +fi + +if [ -z "${CFG_CARGO_DATE}" ]; then + CFG_CARGO_DATE="${CFG_DATE}" fi RUST_URL="https://static.rust-lang.org/dist" @@ -450,10 +452,14 @@ CARGO_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${CARGO_PACKAGE_NAME_AND_TRIPLE}" CARGO_LOCAL_INSTALL_SCRIPT="${CARGO_LOCAL_INSTALL_DIR}/install.sh" # add a date suffix if we want a particular nighly. -if [ -n "${CFG_DATE}" ]; +if [ -n "${CFG_RUST_DATE}" ]; +then + RUST_URL="${RUST_URL}/${CFG_RUST_DATE}" +fi + +if [ -n "${CFG_CARGO_DATE}" ]; then - RUST_URL="${RUST_URL}/${CFG_DATE}" - CARGO_URL="${CARGO_URL}/${CFG_DATE}" + CARGO_URL="${CARGO_URL}/${CFG_CARGO_DATE}" fi verify_hash() { @@ -494,9 +500,6 @@ download_package() { if [ ! -e "${local_tarball}" ]; then msg "Downloading ${remote_tarball} to ${local_tarball}" - mkdir -p "${CFG_DOWNLOAD_DIR}" - need_ok "failed to create create download directory" - "${CFG_CURL}" -f -o "${local_tarball} "${remote_tarball}" if [ $? -ne 0 ] then @@ -510,11 +513,10 @@ download_package() { # Wrap all the commands needed to install a package. install_package() { - tarball_name="$1" + local_tarball="$1" install_script="$2" - local_tarball="${CFG_DOWNLOAD_DIR}/${tarball_name}" - msg "Extracting ${tarball_name}" + msg "Extracting ${local_tarball}" (cd "${CFG_TMP_DIR}" && "${CFG_TAR}" -xvf "${local_tarball}") if [ $? -ne 0 ]; then rm -Rf "${CFG_TMP_DIR}" @@ -542,8 +544,24 @@ 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}" + # If we're saving our nightlies, put them in $HOME/.rustup. + if [ -n "${CFG_SAVE}" ] + then + RUST_DOWNLOAD_DIR="${HOME}/.rustup/${CFG_RUST_DATE}" + CARGO_DOWNLOAD_DIR="${HOME}/.rustup/${CFG_CARGO_DATE}" + else + RUST_DOWNLOAD_DIR="${CFG_TMP_DIR}" + CARGO_DOWNLOAD_DIR="${CFG_TMP_DIR}" + fi + + mkdir -p "${RUST_DOWNLOAD_DIR}" + need_ok "failed to create create download directory" + + mkdir -p "${CARGO_DOWNLOAD_DIR}" + need_ok "failed to create create download directory" + + RUST_LOCAL_TARBALL="${RUST_DOWNLOAD_DIR}/${RUST_TARBALL_NAME}" + CARGO_LOCAL_TARBALL="${CARGO_DOWNLOAD_DIR}/${CARGO_TARBALL_NAME}" download_package \ "${RUST_URL}/${RUST_TARBALL_NAME}" \ @@ -556,12 +574,12 @@ install_packages() { fi install_package \ - "${RUST_TARBALL_NAME}" \ + "${RUST_LOCAL_TARBALL}" \ "${RUST_LOCAL_INSTALL_SCRIPT}" if [ -z "${CFG_DISABLE_CARGO}" ]; then install_package \ - "${CARGO_TARBALL_NAME}" \ + "${CARGO_LOCAL_TARBALL}" \ "${CARGO_LOCAL_INSTALL_SCRIPT}" fi