ClickHouse/docker/test/stateless/utils.lib

52 lines
859 B
Bash

#!/bin/bash
function run_with_retry()
{
if [[ $- =~ e ]]; then
set_e=true
else
set_e=false
fi
set +e
local total_retries="$1"
shift
local retry=0
until [ "$retry" -ge "$total_retries" ]
do
if "$@"; then
if $set_e; then
set -e
fi
return
else
retry=$((retry + 1))
sleep 5
fi
done
echo "Command '$*' failed after $total_retries retries, exiting"
exit 1
}
function fn_exists() {
declare -F "$1" > /dev/null;
}
function timeout_with_logging() {
local exit_code=0
timeout -s TERM --preserve-status "${@}" || exit_code="${?}"
if [[ "${exit_code}" -eq "124" ]]
then
echo "The command 'timeout ${*}' has been killed by timeout"
fi
return $exit_code
}
# vi: ft=bash