23 lines
487 B
Bash
23 lines
487 B
Bash
|
## add the retry function to bats
|
||
|
|
||
|
# Retry a command $1 times until it succeeds. Wait $2 seconds between retries.
|
||
|
function retry {
|
||
|
local attempts=$1
|
||
|
shift
|
||
|
local delay=$1
|
||
|
shift
|
||
|
local i
|
||
|
|
||
|
for ((i=0; i < attempts; i++)); do
|
||
|
run "$@"
|
||
|
if [ "$status" -eq 0 ]; then
|
||
|
echo "$output"
|
||
|
return 0
|
||
|
fi
|
||
|
sleep $delay
|
||
|
done
|
||
|
|
||
|
echo "Command \"$@\" failed $attempts times. Status: $status. Output: $output" >&2
|
||
|
false
|
||
|
}
|