#!/usr/bin/env bash
#
# Install the latest package
#

# ----- Constant definition -----
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# -- command path --
APT_GET="/usr/bin/apt-get" 
DPKG="/usr/bin/dpkg"
ECHO="/bin/echo"
DATE="/bin/date"
MKDIR="/bin/mkdir"
RM="/bin/rm"
SLEEP="/bin/sleep"
SYNC="/bin/sync"
REBOOT="/sbin/reboot"


WGET="/usr/bin/wget"
HEAD="/usr/bin/head"
TR="/usr/bin/tr"
AWK="/usr/bin/awk"
CAT="/bin/cat"
CHMOD="/bin/chmod"
TOUCH="/usr/bin/touch"
EXPR="/usr/bin/expr"

APT_GET_UPDATE="${APT_GET} update"
APT_GET_UPGRAGE="${APT_GET} -y upgrade"

# -- log --
LOG_BASE="/var/local/update_log"
LOG_FILE="${LOG_BASE}/pkg_newest`${DATE} '+%Y%m%d_%H%M%S'`.log"
# -- work dir --
WORK_DIR="/tmp"
# -- apt repository server--
#SERVER="https://solajit-admin:Veglia0914@necommand-01.pvsafety.jp:443/"

FINISHED_FILE_DIR="/var/tmp"
FINISHED_FILE_NAME="logger_reboot"
FINISHED_FILE_VALUE="update"

UPDATE_FAILED_FILE="/var/tmp/update_failed"
RECOVER_FILE_NAME="/etc/rc.local.d/update_recovery"
RECOVER_LOG_NAME="/var/local/update_log/pkg_update_recover_"
RECOVER_BOOT_WAIT="60"

WDT_SUSPEND_CHECK_ALIVE="/tmp/watchdog_stop"

# ----- Function -----

print_log() {
  ${ECHO} $@ >> ${LOG_FILE} 2>&1
}


# ----- Main -----
${MKDIR} -p ${LOG_BASE}

print_log "----- EXECUTE DATE : `date` -----"
print_log ""


# -- Create file for Watchdog : Stop watchdog process monitoring --
print_log "----- START : Create file for Watchdog : Stop watchdog process monitoring. -----"
${TOUCH} ${WDT_SUSPEND_CHECK_ALIVE} > /dev/null
print_log "----- END : Create file for Watchdog : Stop watchdog process monitoring. -----"
print_log ""


print_log "----- START : Update Package list. -----"
${APT_GET_UPDATE} >> ${LOG_FILE} 2>&1
ret_upd=`${ECHO} $?`
print_log "----- END : Update Package list. -----"
print_log ""
${SLEEP} 2

if [ "x${ret_upd}" = "x0" ]; then
  print_log "----- START : Upgrate Package. -----"
  ${APT_GET_UPGRAGE} >> ${LOG_FILE} 2>&1
  ret_upg=`${ECHO} $?`
  print_log "----- END : Upgrate Package. -----"
  print_log ""
else
  ret_upg=1
  print_log "----- Canceled Upgrade. -----"
fi

# -- Delete file for Watchdog : Stop watchdog process monitoring --
print_log "----- START : Delete file for Watchdog : Stop watchdog process monitoring. -----"
${RM} ${WDT_SUSPEND_CHECK_ALIVE} > /dev/null
print_log "----- END : Delete file for Watchdog : Stop watchdog process monitoring. -----"
print_log ""

if [ "x${ret_upg}" != "x0" ]; then
  print_log "   =============================="
  print_log "   ===== Failed to Upgrade. ====="
  print_log "   =============================="
  print_log ""
  print_log "----- FINISH DATE : `date` -----"
  exit 1
fi

print_log "----- FINISH DATE : `date` -----"

print_log "_________ reboot system _________"
${SYNC}
${REBOOT} &
exit 0
