]> git.lizzy.rs Git - rust.git/commitdiff
rustup: allow rust and cargo snapshot dates to be different
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Mon, 1 Dec 2014 08:20:43 +0000 (00:20 -0800)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Mon, 29 Dec 2014 15:04:09 +0000 (10:04 -0500)
src/etc/rustup.sh

index ee62cfe8cee935181742e5331f4ee69585914955..fa163b23529f575029c3d05a5a0db2e00ee7cfe2 100755 (executable)
@@ -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