#!/bin/sh

MOD_NAME=fota
MOD_DEFAULTS=/opt/$MOD_NAME/etc/defaults
MOD_SETTINGS=/opt/$MOD_NAME/etc/settings
[ -L "$MOD_SETTINGS" ] && MOD_SETTINGS=`readlink $MOD_SETTINGS`
MOD_DAEMON="$MOD_NAME"d
FOTA_UM_LOCK=/var/data/fota/lock.um

if [ ! -d /tmp/fota/ ]; then
  mkdir -p "/tmp/fota/"
fi

mkdir -p /var/data/fota

[ -f "$MOD_SETTINGS" ] || cp $MOD_DEFAULTS $MOD_SETTINGS
[ -x "/sbin/hash_verify" ] && [ ! -f "$MOD_SETTINGS.hash" ] && cp $MOD_DEFAULTS.hash $MOD_SETTINGS.hash

. $MOD_SETTINGS

case "$1" in
  once)
        [ -x "/sbin/hash_verify" ] && ! hash_verify $MOD_SETTINGS && exit 1
        echo "Running $MOD_NAME in foreground once"
        /opt/$MOD_NAME/bin/$MOD_DAEMON -o
        RETVAL=$?
        if [ $RETVAL = 0 ]; then echo "$MOD_NAME done"; else echo "$MOD_NAME failed"; fi
        exit $RETVAL
        ;;

  start|restart)
        [ -x "/sbin/hash_verify" ] && ! hash_verify $MOD_SETTINGS && exit 1
        if [ "$1" = "restart" ]; then
            echo -n "Restarting $MOD_NAME: "
            killall $MOD_DAEMON 2> /dev/null
        else
            echo -n "Starting $MOD_NAME: "
        fi
        if [ "$MOD_FOTA_ENABLED" = "0" ]; then
            echo "skipped"
            exit 0
        fi
        /opt/fota/bin/fotad &
        RETVAL=$?
        if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
        exit $RETVAL
        ;;

  stop)
        echo -n "Stopping $MOD_NAME: "
        killall $MOD_DAEMON 2> /dev/null
        RETVAL=$?
        if [ $RETVAL = 0 ]; then echo "done"; else echo "failed"; fi
        rm -rf /tmp/$MOD_NAME/*
        exit $RETVAL
        ;;

  status)
        echo -n "Application $MOD_NAME is "
        killall -0 $MOD_DAEMON 2> /dev/null
        RETVAL=$?
        if [ $RETVAL = 0 ]; then echo "running"; else echo "stopped"; fi
        exit $RETVAL
        ;;

  defaults)
        cp $MOD_DEFAULTS $MOD_SETTINGS 2>/dev/null
        [ -f "$MOD_DEFAULTS.hash" ] && cp $MOD_DEFAULTS.hash $MOD_SETTINGS.hash
        killall $MOD_BINARY 2>/dev/null
        exit 0
        ;;

  *)
        echo "Usage: $0 {start|stop|restart|once|status|defaults}"
        exit 1
esac
