diff options
Diffstat (limited to 'auth/sample/bin/pod_wait.sh')
-rw-r--r-- | auth/sample/bin/pod_wait.sh | 50 |
1 files changed, 37 insertions, 13 deletions
diff --git a/auth/sample/bin/pod_wait.sh b/auth/sample/bin/pod_wait.sh index 14350366..5a8d0625 100644 --- a/auth/sample/bin/pod_wait.sh +++ b/auth/sample/bin/pod_wait.sh @@ -27,6 +27,22 @@ function check { fi } +function wait { + n=0 + while [ $n -lt 40 ]; do + rv="$(check)" + echo "$rv" + if [ "$rv" = "ready" ]; then + echo "$OTHER is $rv" + n=10000 + else + (( ++n )) + echo "Sleep 10 (iteration $n)" + sleep 10 + fi + done +} + function start { n=0 while [ $n -lt 40 ]; do @@ -45,18 +61,26 @@ function start { done } -if [ "sleep" = "$OTHER" ]; then - echo "Sleeping $1" - status "Sleeping $1" - sleep $1 - shift - status "ready" - echo "Done" -else - echo "App $APP is waiting to start until $OTHER is ready" - status "waiting for $OTHER" - - start -fi +case "$OTHER" in + sleep) + echo "Sleeping $1" + status "Sleeping $1" + sleep $1 + shift + status "ready" + echo "Done" + ;; + wait) + OTHER="$1" + shift + wait + ;; + *) + echo "App $APP is waiting to start until $OTHER is ready" + status "waiting for $OTHER" + + start + ;; +esac eval "$@" |