#!/usr/bin/sh
#########################################################
# Orbital Net UBNT Radio Set Park CPE Default Settings  #
# (c) 2024 Orbital Net Ltd                              #
# Author: Andrew Cassidy <andrew.cassidy@orbital.net>   #
#########################################################

if [ "$1" = "" ]; then
  echo "Usage: $0 <device name>"
  exit 1
fi

sort < /tmp/running.cfg > /tmp/orig.cfg
md5sum /tmp/orig.cfg > /tmp/orig.sum

grep -v ^radio.1.scan /tmp/orig.cfg | grep -v ^radio.1.txpower= | grep -v ^users.1. | grep -v ^wireless.1.amsdu= | \
grep -v ^update.check.status= | grep -v ^system.airosx.prov.status= | grep -v ^snmp. | grep -v ^radio.1.reg_obey= | \
grep -v ^discovery.cdp.status= | grep -v ^ntpclient. | grep -v ^radio.1.atpc.sta.status | \
grep -v ^radio.1.pollingpri= | grep -v ^resolv.host.1.name= > /tmp/new.cfg

cat >> /tmp/new.cfg <<EOF
discovery.cdp.status=enabled
ntpclient.1.status=enabled
ntpclient.1.server=94.101.148.180,80.88.198.180
ntpclient.status=enabled
radio.1.atpc.sta.status=disabled
radio.1.pollingpri=1
radio.1.reg_obey=disabled
radio.1.scanbw.status=disabled
radio.1.scan_list.channels=5500,5520,5540,5560,5580,5680,5700,5720,5745,5765,5785,5805,5825
radio.1.scan_list.status=enabled
radio.1.txpower=-4
resolv.host.1.name=$1
snmp.location=$1
snmp.contact=VFAST PARKS
snmp.status=enabled
snmp.community=monitor
system.airosx.prov.status=disabled
update.check.status=disabled
users.1.status=enabled
users.1.name=admin
users.1.password=\$1\$pmGjqU7u\$2tsD6VSIjddZk0yjcG8Al1
wireless.1.amsdu=1
EOF

sort < /tmp/new.cfg > /tmp/orig.cfg
if md5sum -c /tmp/orig.sum; then
  echo "No changes made."
else
  echo "Changes made, reboot required."
  touch /tmp/reboot-required
  cat /tmp/orig.cfg > /tmp/running.cfg
  cfgmtd -f /tmp/running.cfg -w -p /etc/
fi
