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 ]
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"
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() {
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
# 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}"
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}" \
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