]> git.lizzy.rs Git - rust.git/commitdiff
rustup: Add support for resuming downloads
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Wed, 3 Dec 2014 22:38:59 +0000 (14:38 -0800)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Mon, 29 Dec 2014 15:04:09 +0000 (10:04 -0500)
src/etc/rustup.sh

index fa163b23529f575029c3d05a5a0db2e00ee7cfe2..653eb96fa209aa22e26dac5e3f9d6eb4322a4a2c 100755 (executable)
@@ -497,15 +497,28 @@ download_package() {
     remote_sha256="${remote_tarball}.sha256"
 
     # Check if we've already downloaded this file.
-    if [ ! -e "${local_tarball}" ]; then
+    if [ -e "${local_tarball}.tmp" ]; then
+        msg "Resuming ${remote_tarball} to ${local_tarball}"
+
+        "${CFG_CURL}" -f -C - -o "${local_tarball}.tmp" "${remote_tarball}"
+        if [ $? -ne 0 ]
+        then
+            rm -Rf "${CFG_TMP_DIR}"
+            err "failed to download installer"
+        fi
+
+        mv "${local_tarball}.tmp" "${local_tarball}"
+    elif [ ! -e "${local_tarball}" ]; then
         msg "Downloading ${remote_tarball} to ${local_tarball}"
 
-        "${CFG_CURL}" -f -o "${local_tarball} "${remote_tarball}"
+        "${CFG_CURL}" -f -o "${local_tarball}.tmp" "${remote_tarball}"
         if [ $? -ne 0 ]
         then
             rm -Rf "${CFG_TMP_DIR}"
             err "failed to download installer"
         fi
+
+        mv "${local_tarball}.tmp" "${local_tarball}"
     fi
 
     verify_hash "${remote_sha256}" "${local_tarball}"