#!/bin/bash
#
# Script to update the APN
#

function print_usage() {
  echo "Usage:  `basename $0` [-c CONFIGDIR] COMMAND"
  echo
  echo "The following commands are available:"
  echo "  apn <NEWAPN>  get current or set new APN with additional string argument"
  exit 0
}

CONFDIR="/etc/signalytic"

while getopts ":c:h" options; do
  case "${options}" in
    c)
      CONFDIR=${OPTARG}
      ;;
    h)
      print_usage
      ;;
    *)
      print_usage
      ;;
  esac
done
shift $((OPTIND -1))

# Exit on error:
set -e
trap 'echo "Error: "' ERR

CONF_CELLMODEM="${CONFDIR}/cellmodem"
if [ ! -f "${CONF_CELLMODEM}" ]; then
  echo "ERROR: file ${CONF_CELLMODEM} does not exist."
  exit 1
fi

COMMAND=$1
if [ -z "$COMMAND" ]; then
  COMMAND="apn"
fi

case $COMMAND in

  apn)         # get/set apn

    NEW_APN="$2"
    if [ -z "$NEW_APN" ]; then
      echo "$(grep apn ${CONF_CELLMODEM} | cut -d= -f2 | xargs)"
    else
      sed "s/^apn =.*/apn = \"${NEW_APN}\"/g" ${CONF_CELLMODEM} > ${CONF_CELLMODEM}-new
      mv ${CONF_CELLMODEM}-new ${CONF_CELLMODEM}
      /var/signalytic/bin/cellmodemtest reconnect
      echo "$(grep apn ${CONF_CELLMODEM} | cut -d= -f2 | xargs)"
    fi
    ;;

  *)
    echo "Error: unknown command."
    exit 1
    ;;
    
esac


