wait-on-file
39 lines
| 925 B
| text/plain
|
TextLexer
Joerg Sonnenberger
|
r45287 | #!/bin/sh | ||
r45121 | # | |||
# wait up to TIMEOUT seconds until a WAIT_ON_FILE is created. | ||||
# | ||||
# In addition, this script can create CREATE_FILE once it is ready to wait. | ||||
if [ $# -lt 2 ] || [ $# -gt 3 ]; then | ||||
echo $# | ||||
echo "USAGE: $0 TIMEOUT WAIT_ON_FILE [CREATE_FILE]" | ||||
fi | ||||
timer="$1" | ||||
r45122 | ||||
Joerg Sonnenberger
|
r45336 | # Scale the timeout to match the sleep steps below, i.e. 1/0.02. | ||
timer=$(( 50 * $timer )) | ||||
# If the test timeout have been extended, also scale the timer relative | ||||
# to the normal timing. | ||||
r45122 | if [ "$HGTEST_TIMEOUT_DEFAULT" -lt "$HGTEST_TIMEOUT" ]; then | |||
Joerg Sonnenberger
|
r45336 | timer=$(( ( $timer * $HGTEST_TIMEOUT) / $HGTEST_TIMEOUT_DEFAULT )) | ||
r45122 | fi | |||
r45121 | wait_on="$2" | |||
create="" | ||||
if [ $# -eq 3 ]; then | ||||
create="$3" | ||||
fi | ||||
Joerg Sonnenberger
|
r45287 | if [ -n "$create" ]; then | ||
r45121 | touch "$create" | |||
create="" | ||||
fi | ||||
Joerg Sonnenberger
|
r45287 | while [ "$timer" -gt 0 ] && [ ! -f "$wait_on" ]; do | ||
r45221 | timer=$(( $timer - 1)) | |||
Joerg Sonnenberger
|
r45336 | sleep 0.02 | ||
r45121 | done | |||
if [ "$timer" -le 0 ]; then | ||||
echo "file not created after $1 seconds: $wait_on" >&2 | ||||
exit 1 | ||||
fi | ||||