]> git.proxmox.com Git - rustc.git/blobdiff - src/ci/docker/dist-various-2/shared.sh
New upstream version 1.33.0+dfsg1
[rustc.git] / src / ci / docker / dist-various-2 / shared.sh
index e26c6eb6645781c70b1948a53b8b5e1532d359d7..fb917b0510e40261f28ac8ad3e7efa5a71694700 100644 (file)
@@ -1,13 +1,3 @@
-# Copyright 2017 The Rust Project Developers. See the COPYRIGHT
-# file at the top-level directory of this distribution and at
-# http://rust-lang.org/COPYRIGHT.
-#
-# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-# option. This file may not be copied, modified, or distributed
-# except according to those terms.
-
 hide_output() {
   set +x
   on_err="
@@ -23,3 +13,21 @@ exit 1
   kill $PING_LOOP_PID
   set -x
 }
+
+function retry {
+  echo "Attempting with retry:" "$@"
+  local n=1
+  local max=5
+  while true; do
+    "$@" && break || {
+      if [[ $n -lt $max ]]; then
+        sleep $n  # don't retry immediately
+        ((n++))
+        echo "Command failed. Attempt $n/$max:"
+      else
+        echo "The command has failed after $n attempts."
+        return 1
+      fi
+    }
+  done
+}