#!/bin/sh
#
# monitor-plano: script to monitor when 15.04 snappy core releases occur
#
# Copyright 2017 Canonical, Ltd.
# Author: Steve Beattie <steve.beattie@canonical.com>
#
# use in a cron entry like so:
#   ${UCT}/scripts/monitor-plano | cronmail 'Snappy Core # 15.04 (plano) update detected' steve.beattie@canonical.com steve.beattie@canonical.com
#
#

set -e

UCT_CACHE_DIR="${HOME}/.cache/uct/"
PLANO_CACHE_FILE="${PLANO_CACHE_FILE:=${UCT_CACHE_DIR}/snap_plano_version}"

if ! [ -d "$(dirname "${PLANO_CACHE_FILE}")" ] ; then
	mkdir -p "$(dirname "${PLANO_CACHE_FILE}")"
fi

if ! which ubuntu-device-flash > /dev/null ; then
	echo "Cannot find ubuntu-device-flash; please install via:"
	echo "  sudo apt-get install ubuntu-device-flash"
	exit 1
fi

PLANO_VERSION=$(ubuntu-device-flash query --channel ubuntu-core/15.04/stable  --device plano --show-image |\
                 awk '/^Version: / { print $2 ; }')

if ! [ -e "${PLANO_CACHE_FILE}" ] ; then
	echo "Storing version for the first time"
	echo "${PLANO_VERSION}" > "${PLANO_CACHE_FILE}"
	exit
fi

OLD_PLANO_VERSION="$(cat "${PLANO_CACHE_FILE}")"

if [ "${PLANO_VERSION}" != "${OLD_PLANO_VERSION}" ] ; then
	echo "  #####################################################"
	echo
	echo "  New snappy core 15.04 plano version has been released"
	echo
	echo "  Need to update CVE state of any package updates"
	echo
	echo "  #####################################################"
	echo
	ubuntu-device-flash query --channel ubuntu-core/15.04/stable --device plano --show-image

	echo "${PLANO_VERSION}" > "${PLANO_CACHE_FILE}"
fi
