mirror of
https://github.com/ivanilves/xiringuito.git
synced 2025-05-29 13:30:26 -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