# Copyright (c) 2022 Jan Lehnardt , MIT licensed # inspired by https://github.com/pouchdb/pouchdb/blob/25db22fb0ff025b8d2c698da30c6c409066baa0c/bin/run-test.sh#L102-L113 # Team PouchDB, Apache 2 licensed . ./lib.sh 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 after=`expr $duration \* $iterations` debug_inline "failed, $url can not be reached after $after seconds\n" return 1 fi debug_inline . waiting=`expr $waiting + 1` sleep $duration done debug_inline " succeeded\n" }