rust: Ensure we verify the checksum and create out

Change-Id: Ibdf7373109efb213d9b4453583dcbc23dc80876a
diff --git a/manage-rust-toolchain.sh b/manage-rust-toolchain.sh
index dcc4990..3a700f2 100755
--- a/manage-rust-toolchain.sh
+++ b/manage-rust-toolchain.sh
@@ -60,22 +60,34 @@
 
     local tarball="$(generate-tarball-name)"
 
-    if [[ -f "${ROOTDIR}/out/${tarball}" ]]; then
+    if [[ -f "${OUT}/${tarball}" ]]; then
         die "Tarball ${tarball} already exists -- cowardly refusing to overwrite it."
     fi
 
-    echo "Creating tarball in ${ROOTDIR}/out/${tarball}..."
+    mkdir -p "${OUT}"
+
+    echo "Creating tarball in ${OUT}/${tarball}..."
     tar -C "${ROOTDIR}/cache" -c -f - rust_toolchain \
         |xz -T0 -9 \
-        > "${ROOTDIR}/out/${tarball}"
+        > "${OUT}/${tarball}"
 
     if [[ "$?" != 0 ]]; then
-        rm -f "${ROOTDIR}/out/${tarball}"
         die "Couldn't create tarball."
     fi
 
     echo "Generating sha256sums..."
-    (cd "${ROOTDIR}/out" && sha256sum "${tarball}") > "${ROOTDIR}/out/${tarball}.sha256sum"
+    (cd "${OUT}" && sha256sum "${tarball}") > "${OUT}/${tarball}.sha256sum"
+
+    if [[ "$?" != 0 ]]; then
+        die "Couldn't create sha256sum checksum file."
+    fi
+
+    echo "Verifying sha256sum is valid..."
+    (cd "${OUT}" && sha256sum -c "${tarball}.sha256sum")
+
+    if [[ "$?" != 0 ]]; then
+        die "Couldn't verify sha256sum!"
+    fi
 }
 
 function list-tarballs {
@@ -88,13 +100,19 @@
     local tarball="$(generate-tarball-name)"
 
     echo "Uploading tarball..."
-    try gsutil cp "${ROOTDIR}/out/${tarball}" "${PUBLIC_ARTIFACTS_PATH}/${tarball}"
-    try gsutil cp "${ROOTDIR}/out/${tarball}.sha256sum" "${PUBLIC_ARTIFACTS_PATH}/${tarball}.sha256sum"
+    try gsutil cp "${OUT}/${tarball}" "${PUBLIC_ARTIFACTS_PATH}/${tarball}"
+    try gsutil cp "${OUT}/${tarball}.sha256sum" "${PUBLIC_ARTIFACTS_PATH}/${tarball}.sha256sum"
 }
 
 function promote-tarball {
     local promote_date="$1"; shift
 
+    echo "Removing old latest toolchain..."
+    try gsutil rm \
+        "${PUBLIC_ARTIFACTS_PATH}/rust_toolchain_latest.tar.xz"
+    try gsutil rm \
+        "${PUBLIC_ARTIFACTS_PATH}/rust_toolchain_latest.tar.xz.sha256sum"
+
     echo "Promoting tarball rust_toolchain_${promote_date}.tar.xz to rust_toolchain_latest.tar.xz"
     try gsutil cp \
         "${PUBLIC_ARTIFACTS_PATH}/rust_toolchain_${promote_date}.tar.xz" \