#!/bin/sh
#
# Script to detect AGL Reference Hardware and switch gpsd
# configuration as necessary.
#
# NOTE:
# For the most part errors are ignored and the script returns
# 0/success so gpsd still be started if the script is somehow
# run on a board without the expected hardware.

COMPAT=/sys/firmware/devicetree/base/compatible
GPSTTY=/dev/ttySC3

#if [ ! \( -f "$COMPAT" -a -c "$GPSTTY" -a -f /etc/default/gpsd.refhw \) ]; then
if [ ! \( -f "$COMPAT" -a -f /etc/default/gpsd.refhw \) ]; then
    exit 0
fi

found=false
for c in `cat $COMPAT | tr '\0' ' '`; do
    if echo $c | grep -q '^agl,refhw-h3$'; then
        found=true
        break
    fi
done

if $found; then
    if [ ! -c "$GPSTTY" ]; then
        exit 0
    fi
    update-alternatives --install /etc/default/gpsd gpsd-defaults /etc/default/gpsd.refhw 20
else
    update-alternatives --install /etc/default/gpsd gpsd-defaults /etc/default/gpsd.refhw 5
fi
exit 0