diff --git a/src/etc/rustup.sh b/src/etc/rustup.sh index 47e64547eed39..918c0c66f76df 100755 --- a/src/etc/rustup.sh +++ b/src/etc/rustup.sh @@ -288,6 +288,7 @@ VAL_OPTIONS="" flag uninstall "only uninstall from the installation prefix" valopt prefix "" "set installation prefix" valopt date "" "use the YYYY-MM-DD nightly instead of the current nightly" +valopt channel "beta" "use the selected release channel [beta]" flag save "save the downloaded nightlies to ~/.rustup" if [ $HELP -eq 1 ] @@ -307,7 +308,7 @@ CFG_CPUTYPE=$(uname -m) if [ $CFG_OSTYPE = Darwin -a $CFG_CPUTYPE = i386 ] then - # Darwin's `uname -s` lies and always returns i386. We have to use sysctl + # Darwin's `uname -m` lies and always returns i386. We have to use sysctl # instead. if sysctl hw.optional.x86_64 | grep -q ': 1' then @@ -449,18 +450,28 @@ then fi RUST_URL="https://static.rust-lang.org/dist" -RUST_PACKAGE_NAME=rust-nightly +case "$CFG_CHANNEL" in + nightly) + # add a date suffix if we want a particular nightly. + if [ -n "${CFG_DATE}" ]; + then + RUST_URL="${RUST_URL}/${CFG_DATE}" + fi + + RUST_PACKAGE_NAME=rust-nightly + ;; + beta) + RUST_PACKAGE_NAME=rust-1.0.0-beta + ;; + *) + err "Currently 'beta' and 'nightly' are the only supported channels" +esac + RUST_PACKAGE_NAME_AND_TRIPLE="${RUST_PACKAGE_NAME}-${HOST_TRIPLE}" RUST_TARBALL_NAME="${RUST_PACKAGE_NAME_AND_TRIPLE}.tar.gz" RUST_LOCAL_INSTALL_DIR="${CFG_TMP_DIR}/${RUST_PACKAGE_NAME_AND_TRIPLE}" RUST_LOCAL_INSTALL_SCRIPT="${RUST_LOCAL_INSTALL_DIR}/install.sh" -# add a date suffix if we want a particular nighly. -if [ -n "${CFG_DATE}" ]; -then - RUST_URL="${RUST_URL}/${CFG_DATE}" -fi - download_hash() { msg "Downloading ${remote_sha256}" remote_sha256=`"${CFG_CURL}" -f "${remote_sha256}"`