mirror of
https://github.com/ivanilves/xiringuito.git
synced 2025-05-27 20:40:19 -07:00
IS IT DONE?
This commit is contained in:
parent
4b1cf923bd
commit
b538d59797
51
helpers/wait_for
Executable file
51
helpers/wait_for
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Waits TIMEOUT seconds, makes probes every second, until COMMAND returns
|
||||
#
|
||||
function die(){
|
||||
[[ "${WAIT_VERBOSE}" == "true" ]] && echo
|
||||
echo "[ ERROR ]"
|
||||
echo "${@}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function signal_progress(){
|
||||
[[ "${WAIT_VERBOSE}" == "true" ]] && echo -n "="
|
||||
}
|
||||
|
||||
function success(){
|
||||
[[ "${WAIT_VERBOSE}" == "true" && ${WAIT_TIME} -gt 0 ]] && echo "|"
|
||||
exit 0
|
||||
}
|
||||
|
||||
[[ ${#} -ge 3 ]] || die "Usage: wait_for true|false TIMEOUT COMMAND"
|
||||
|
||||
[[ ${1} == "true" || ${1} == "false" ]] || die "'true' or 'false' for the first argument please!"
|
||||
|
||||
declare -r RESOLUTION=${1}; shift
|
||||
declare -r TIMEOUT=${1}; shift
|
||||
declare -r COMMAND="${@}"
|
||||
|
||||
WAIT_TIME=0
|
||||
while [[ ${WAIT_TIME} -lt ${TIMEOUT} ]]; do
|
||||
${COMMAND}
|
||||
RETVAL=${?}
|
||||
|
||||
if [[ "${RESOLUTION}" == "true" ]]; then
|
||||
[[ ${RETVAL} -eq 0 ]] && success
|
||||
else
|
||||
[[ ${RETVAL} -ne 0 ]] && success
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
let WAIT_TIME+=1
|
||||
signal_progress
|
||||
done
|
||||
|
||||
|
||||
if [[ "${RESOLUTION}" == "true" ]]; then
|
||||
FAIL_STATE=fails
|
||||
else
|
||||
FAIL_STATE=succeeds
|
||||
fi
|
||||
die "\"${@}\" still ${FAIL_STATE} after ${TIMEOUT} seconds"
|
Loading…
x
Reference in New Issue
Block a user