#!/bin/bash
set -u

#------------------------------------------------------------------------------
# Version ID Block. Relies on +k filetype modifier.
# VersionID='$Id: //p4-sdp/dev_c2s/test/bsw/push_bins.sh#2 $ $Change: 31472 $'

declare -i ErrorCount=0
declare -i Debug=0
declare -i HostCount=0
declare Timeout=5s
declare Host=
declare -i HostFailCount=0
declare -a HostFailList
declare RsyncCmd=

function msg () { echo -e "$*"; }
function dbg () { [[ "$Debug" -eq 0 ]] || msg "DEBUG: $*"; }
function errmsg () { msg "\\nError: ${1:-Unknown Error}\\n"; ErrorCount+=1; }
function bail () { errmsg "${1:-Unkown Error}"; exit "${2:-1}"; }

for Host in helix-0{2..5}; do
   echo Host=$Host
   for Dir in /p4/sdp/helix_binaries; do
      RsyncCmd="rsync -e \"ssh -q\" -av \"$Dir/\" \"$Host:$Dir\""
      msg "Running: $RsyncCmd"
      if ! eval timeout $Timeout $RsyncCmd; then
         errmsg "Could not do: $RsyncCmd"
         HostFailList[HostFailCount]="$Host"
         HostFailCount+=1
      fi
   done
   HostCount+=1
done

if [[ "$ErrorCount" -eq 0 ]]; then

   msg "\\nSuccess: Push Bins completed OK to $HostCount hosts."
else
   msg "\\nPush Bins attempted to $HostCount hosts; $ErrorCount errors encountered for these hosts: ${HostFailList[@]}."
fi
