source ./lib.sh function wait_for_url () { assert_arg "$1" && url="$1" || error_and_exit "url not provided, exiting" assert_arg "$2" && iterations="$2" || iterations=3 assert_arg "$3" && duration="$3" || duration=1 debug "called wait_for_url(url=$url, duration=$duration, iterations=$iterations)" waiting=0 cmd="curl --output /dev/null --silent --insecure --head --fail --max-time 2 $url" debug_inline "waiting for $url " until ($cmd); do if [ $waiting -eq $iterations ]; then let after=$duration*iterations debug_inline "failed, $url can not be reached after $after seconds\n" return 1 fi debug_inline . let waiting=waiting+1 sleep $duration done debug_inline " succeeded\n" }