#!/bin/bash -xe

# wait_for_pupet.sh LOGFILE HOSTNAME [HOSTNAME...]
# Search LOGFILE for puppet completion on each host

FINISH_RE="puppet-agent\[.*\]: Finished catalog run in .* seconds"
LOGFILE=$1
shift
HOSTS=$@

echo "Jenkins: Waiting for puppet to complete on all nodes"
DONE=0
while [ $DONE != 1 ]; do
    DONE=1
    for hostname in $HOSTS; do
        if !(grep "$hostname $FINISH_RE" $LOGFILE >/dev/null); then
            DONE=0
        fi
    done
    sleep 5
done
echo "Jenkins: Puppet is complete."