blob: 08998db0252336459923a3d73355cf2684f8a807 [file] [log] [blame]
Instrumental08e93402018-10-03 08:38:52 -05001#!/bin/bash
2#
3# A Script for use in Pods... Check for status files, and validate before moving on.
4#
5DIR="/opt/app/aaf/status"
6APP=$1
7shift
8OTHER=$1
9shift
10
11function status {
12 if [ -d "$DIR" ]; then
13 echo "$@" > $DIR/$APP
14 fi
15}
16
Instrumental08e93402018-10-03 08:38:52 -050017
18function check {
19 if [ -d "$DIR" ]; then
20 if [ -e "$DIR/$OTHER" ]; then
21 echo "$(cat $DIR/$OTHER)"
22 else
23 echo "$DIR/$OTHER does not exist"
24 fi
25 else
26 echo "$DIR does not exist"
27 fi
28}
29
Instrumental14f37072018-10-09 08:32:06 -050030function start {
31 n=0
32 while [ $n -lt 40 ]; do
33 rv="$(check)"
34 echo "$OTHER is $rv"
35 if [ "$rv" = "ready" ]; then
36 # This is critical. Until status is literally "ready" in the status directory, no processes will start
37 status ready
38 echo "Starting $@"
39 n=10000
40 else
41 (( ++n ))
42 echo "Sleep 10 (iteration $n)"
43 sleep 10
44 fi
45 done
46}
Instrumental08e93402018-10-03 08:38:52 -050047
Instrumental14f37072018-10-09 08:32:06 -050048if [ "sleep" = "$OTHER" ]; then
49 echo "Sleeping $1"
50 status "Sleeping $1"
51 sleep $1
52 shift
53 status "ready"
54else
55 echo "App $APP is waiting to start until $OTHER is ready"
56 status "waiting for $OTHER"
57
58 start
59fi
Instrumental08e93402018-10-03 08:38:52 -050060
61eval "$@"