#!/bin/sh
# Do NOT "set -e"

MODULENAME=lora
MODULEPATH=/opt/${MODULENAME}
DEFAULTSFILE=$MODULEPATH/etc/defaults
SETTINGSFILE=$MODULEPATH/etc/settings

# Dispatch the command to each script in the init.d folder.
# Return codes: 0 = started; 1 = already started; other = failure.
#
do_dispatch()
{
  for file in $MODULEPATH/etc/init.d/*; do
    if [ -x $file ]; then
      $file $1
      [ $? -lt 2 ] || return $?
    fi
  done
  return 0
}

# Set the default settings when the user-module is installed or when the router RST switch is pressed. 
#
do_defaults()
{
  # Check if the defaults file exists and is readable.
  [ -r $DEFAULTSFILE ] || return 2

  # Copy the defaults file to a temporary file.
  cp $DEFAULTSFILE $SETTINGSFILE.$$ || return 2

  # Atomically replace the settings file with the temporary file.
  mv $SETTINGSFILE.$$ $SETTINGSFILE

  # Allow the temporary file to be modified.
  chmod 0640 $SETTINGSFILE

  do_dispatch defaults
  return $?
}

case "$1" in
  defaults)
    do_defaults
    RETVAL=$?
    ;;
  start)
    do_dispatch start
    RETVAL=$?
    ;;
  status)
    do_dispatch status
    RETVAL=$?
    ;;
  stop)
    do_dispatch stop
    RETVAL=$?
    ;;
  restart|force-reload)
    do_dispatch stop
    RETVAL=$?
    case "$RETVAL" in
      0|1)
        do_dispatch start
        RETVAL=$?
        ;;
    esac
    ;;
  *)
    echo "Usage: $SCRIPTNAME { defaults | force-reload | restart | start | status | stop }" >&2
    RETVAL=3
    ;;
esac
exit $RETVAL

# ---- END OF FILE ----