examples/deploy-qemu-vm: show progress when waiting
This improves the user experience on VM startup, which can take a few seconds.
This commit is contained in:
committed by
Jonas Nick
parent
ccba86a0f0
commit
908af3bfb8
21
examples/qemu-vm/wait-until.sh
Normal file
21
examples/qemu-vm/wait-until.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
# Wait until $condition is true, retrying every $intervalMs milliseconds.
|
||||
# Print a '.' character every second as a progress indicator.
|
||||
waitUntil() {
|
||||
condition=$1
|
||||
intervalMs=$2
|
||||
|
||||
lastDotTime=$(getTimeMs)
|
||||
while ! { t0=$(getTimeMs); eval "$condition"; }; do
|
||||
now=$(getTimeMs)
|
||||
if ((now - lastDotTime >= 1000)); then
|
||||
printf .
|
||||
lastDotTime=$now
|
||||
fi
|
||||
toSleep=$((t0 + intervalMs - now))
|
||||
if ((toSleep > 0)); then
|
||||
sleep $((toSleep / 1000)).$((toSleep % 1000));
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
getTimeMs() { date +%s%3N; }
|
||||
Reference in New Issue
Block a user