1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#!/bin/bash
#
# This file is intended to be sourced, so it is not being marked as
# an executable file in git.
# This is modified from
# https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/bash/travis_setup_env.bash
export ANSI_RED='\033[31;1m'
export ANSI_GREEN='\033[32;1m'
export ANSI_YELLOW='\033[33;1m'
export ANSI_RESET='\033[0m'
export ANSI_CLEAR='\033[0K'
# This is modified loop version of
# https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/bash/travis_retry.bash
command_retry() {
local result=0
local count=1
local max=5
while [ "${count}" -le "${max}" ]; do
[ "${result}" -ne 0 ] && {
printf "${ANSI_RED}"'The command "%s" failed. Retrying, %s of %s.'"${ANSI_RESET}"'\n' "${*}" "${count}" "${max}" >&2
}
"${@}" && { result=0 && break; } || result="${?}"
: $((count=count+1))
sleep 1
done
[ "${count}" -gt "${max}" ] && {
printf "${ANSI_RED}"'The command "%s" failed %s times.'"${ANSI_RESET}"'\n' "${*}" "${max}" >&2
}
return "${result}"
}
|