Browse code

make tail stop when stack.sh is finished

Anthony Young authored on 2011/10/15 08:50:27
Showing 1 changed files
... ...
@@ -35,6 +35,7 @@ CONTAINER_GATEWAY=${CONTAINER_GATEWAY:-192.168.1.1}
35 35
 NAMESERVER=${NAMESERVER:-$CONTAINER_GATEWAY}
36 36
 COPYENV=${COPYENV:-1}
37 37
 DEST=${DEST:-/opt/stack}
38
+WAIT_TILL_LAUNCH=${WAIT_TILL_LAUNCH:-1}
38 39
 
39 40
 # Param string to pass to stack.sh.  Like "EC2_DMZ_HOST=192.168.1.1 MYSQL_USER=nova"
40 41
 STACKSH_PARAMS=${STACKSH_PARAMS:-}
... ...
@@ -260,19 +261,39 @@ fi
260 260
 # Start our container
261 261
 lxc-start -d -n $CONTAINER
262 262
 
263
-# Done creating the container, let's tail the log
264
-echo
265
-echo "============================================================="
266
-echo "                          -- YAY! --"
267
-echo "============================================================="
268
-echo
269
-echo "We're done creating the container, about to start tailing the"
270
-echo "stack.sh log. It will take a second or two to start."
271
-echo
272
-echo "Just CTRL-C at any time to stop tailing."
273
-
274
-while [ ! -e "$ROOTFS/$DEST/run.sh.log" ]; do
275
-  sleep 1
276
-done
277
-
278
-tail -F $ROOTFS/$DEST/run.sh.log
263
+if [ "$WAIT_TILL_LAUNCH" = "1" ]; then
264
+    # Done creating the container, let's tail the log
265
+    echo
266
+    echo "============================================================="
267
+    echo "                          -- YAY! --"
268
+    echo "============================================================="
269
+    echo
270
+    echo "We're done creating the container, about to start tailing the"
271
+    echo "stack.sh log. It will take a second or two to start."
272
+    echo
273
+    echo "Just CTRL-C at any time to stop tailing."
274
+
275
+    while [ ! -e "$ROOTFS/$DEST/run.sh.log" ]; do
276
+      sleep 1
277
+    done
278
+
279
+    tail -F $ROOTFS/$DEST/run.sh.log &
280
+
281
+    TAIL_PID=$!
282
+
283
+    function kill_tail() {
284
+        exit 1
285
+    }
286
+ 
287
+    # Let Ctrl-c kill tail and exit
288
+    trap kill_tail SIGINT
289
+
290
+    echo "Waiting stack.sh to finish..."
291
+    while ! cat $ROOTFS/$DEST/run.sh.log | grep -q 'All done' ; do
292
+        sleep 5
293
+    done
294
+
295
+    kill $TAIL_PID
296
+    echo ""
297
+    echo "Finished - Zip-a-dee Doo-dah!"
298
+fi