#!/bin/sh
#
# Upgrade multiple bruno devices at once.  Returns 0 if they were all
# successful.
#
mydir=$(dirname "$0")
imgfile=$1
imgbase=$(basename "$imgfile" .gi)
shift
hosts="$*"

log()
{
  printf '\x1b[1m%s\x1b[m\n' "$*" >&2
}


die()
{
  log "FAILED"
  exit 1
}


run()
{
  "$mydir/run" $hosts -- "$@" || die
}


if [ ! -e "$imgfile" ] || [ -z "$hosts" ]; then
  log "Usage: $0 <filename.gi> [hostnames...]"
  exit 1
fi

log "Checking running versions..."
versions=$(run ssh root@\$ip cat /etc/version) || die
echo "$versions"
newhosts=$(
  echo "$versions" |
  while IFS=': ' read name version; do
    if [ "$version" != "$imgbase" ]; then
      echo "$name"
    else
      log "'$name' is up to date; skipping."
    fi
  done
)
if [ -z "$newhosts" ]; then
  log "No upgrades needed."
  exit 0
fi
log "Will upgrade:" $newhosts
hosts=$newhosts

log "Copying image files..."
imgfile=$imgfile run 'scp "$imgfile" root@$ip:/tmp/img.gi && echo ok'

log "Installing..."
run 'ssh root@$ip ginstall -t /tmp/img.gi -p other && echo ok'

log "Rebooting..."
run ssh root@\$ip '(sleep 2; reboot) &'
sleep 5

log "Waiting for hosts to come back up..."
run '
  for i in $(seq 5 5 90); do
    if ping -c1 -w5 $ip >/dev/null; then
      echo "ok!"
      sleep 5
      exit 0
    fi
  done
  exit 1
'

log "Checking running versions (expect: $imgbase)..."
versions=$(run ssh root@\$ip cat /etc/version) || die
echo "$versions"
echo "$versions" | (
  rv=0
  while IFS=': ' read name version; do
    if [ "$version" != "$imgbase" ]; then
      log "$name: failed to upgrade!"
      rv=1
    fi
  done
  exit $rv
) || die
