#!/bin/bash
#
# Starts thermostat web-storage-service and opens
# thermostat gui (swing client).
# 
# This script is used via a *.desktop launcher
#
#set -xv

THERMOSTAT=/usr/share/thermostat/bin/thermostat
USER_THERMOSTAT_HOME="${HOME}/.thermostat"
THERMOSTAT_SERVICE_PID=${USER_THERMOSTAT_HOME}/run/thermostat-web-storage-service.pid
THERMOSTAT_SETUP_COMPLETE_STAMP=${USER_THERMOSTAT_HOME}/data/setup-complete.stamp

function stop_service() {
  if [ -e "${THERMOSTAT_SERVICE_PID}" ]; then
      pid=$(cat "${THERMOSTAT_SERVICE_PID}")
      kill ${pid}
      retval=$?
      # cleanup pid
      rm -rf "${THERMOSTAT_SERVICE_PID}"
      return ${retval}
  else
      return 1
  fi
}

if [ ! -e ${THERMOSTAT_SETUP_COMPLETE_STAMP} ]; then
  ${THERMOSTAT} setup
fi
# Start thermostat service (storage + agent)
${THERMOSTAT} -Tbg "${THERMOSTAT_SERVICE_PID}" web-storage-service
sleep 2
if [ -e "${THERMOSTAT_SERVICE_PID}" ]; then
  # Start the gui; this blocks
  ${THERMOSTAT} gui
else
  zenity --error \
         --text "<tt>thermostat web-storage-service</tt> failed to start.\n\nPlease launch the following command from a terminal for more details: /usr/share/thermostat/bin/thermostat-local-http" \
         --title "Ooops. Something has gone wrong :("
  exit 1
fi

# This means gui finished, stop service
stop_service
exit 0
