-# 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="
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
+}