#!/bin/sh
###
#
#              Initialize USB serial gadget
#
##

hw_run=/usr/local/etc/telem/hw-run.xml


start() {
    echo -n "Detect COM ports - "

    test -f $hw_run && exit 0

    hw_version=base

    rtc_board="/sys/bus/usb/devices/1-1.1:1.1"
    com8_ftdi1="/sys/bus/usb/devices/1-1.3:1.0"
    com8_ftdi2="/sys/bus/usb/devices/1-1.4:1.0"
    lan_board="/sys/bus/usb/devices/2-1.3.1:1.0/net"

    rtc=0
    com8_1=0
    com8_2=0
    lan=0

    [ -e $rtc_board ] && rtc=1
    [ -e $com8_ftdi1 ] && com8_1=1
    [ -e $com8_ftdi2 ] && com8_2=1
    # wait for device, detecting usb eth may take up to 3 seconds after reboot
    counter=4
    while [ $counter -gt 0 ]; do
        [ -e $lan_board ] && { lan=1; break; }
        counter=$(( $counter - 1 ))
        sleep 1
    done

    if [ _$rtc = _1 ] && [ _$lan = _0 ] && [ _$com8_1 = _1 ] && [ _$com8_2 = _1 ]; then
        hw_version=full
    elif [ _$rtc = _0 ] && [ _$lan = _0 ] && [ _$com8_1 = _1 ] && [ _$com8_2 = _1 ]; then
        hw_version=com8
    elif [ _$rtc = _1 ] && [ _$lan = _0 ] && [ _$com8_1 = _0 ] && [ _$com8_2 = _0 ]; then
        hw_version=rtc
    elif [ _$rtc = _0 ] && [ _$lan = _1 ] && [ _$com8_1 = _1 ] && [ _$com8_2 = _1 ]; then
        hw_version=full-lan
    elif [ _$rtc = _0 ] && [ _$lan = _1 ] && [ _$com8_1 = _1 ] && [ _$com8_2 = _1 ]; then
        hw_version=com8-lan
    elif [ _$rtc = _0 ] && [ _$lan = _1 ] && [ _$com8_1 = _0 ] && [ _$com8_2 = _0 ]; then
        hw_version=lan
    else
        hw_version=base
    fi

    hw_file=/usr/local/etc/telem/hw-${hw_version}.xml

    ln -s $hw_file $hw_run
    
    echo -n "'$hw_version' - "
    
    echo -e "OK"

    exit 0
}

case "$1" in
  start)
    start
      ;;
  reset|detect|restart|reload)
    echo -e "Removing old hardware definition"
    ! rm -f $hw_run
    start
      ;;
  stop)
      ;;
  *)
      echo $"Usage: $0 {start|reset|detect|restart}"
      exit 1
esac

exit $?