#!/bin/bash

DIR=`dirname $0`

FROM_MAC=$1

# !!!!!!! If we change this script, we need to update mIdScript in Geral !!!!!!!!!

# FROM_MAC = 1 -> shows machine mac address
# FROM_MAC = 2 -> shows all available tplinks connected in the machine

# valid network cards
valid_wlan_hardlocks="503 d037 7cc 386 760 c02 060 8c8"

# add support for mercusys cards
if [ ! -e "/etc/udev/rules.d/99-TLWN725Nv2.rules" ]; then
  echo "ACTION==\"add\", ATTRS{idVendor}==\"2c4e\", ATTRS{idProduct}==\"0102\", RUN+=\"/sbin/modprobe 8188eu\" RUN+=\"/bin/sh -c 'echo 2c4e 0102> /sys/bus/usb/drivers/r8188eu/new_id'\"" 2>/dev/null > /etc/udev/rules.d/99-TLWN725Nv2.rules
fi

if [ "$FROM_MAC" = "" ] && [ -e "/opt/pos/.machine_id" ]; then
  MID=`cat "/opt/pos/.machine_id"`
  if [ "$MID" != "" ]; then
    echo -n $MID
    exit
  fi
fi

POS_HARDLOCK=""

if [ "$FROM_MAC" = "2" ]; then
  for dev in `ls /sys/class/net/*/address 2> /dev/null`; do
    serial=`cat $dev | sed 's/\://g'`

    if [ "$serial" != "" ]; then
      for valid in `echo $valid_wlan_hardlocks`; do
        if [ ! -e "/opt/pos/.machine_id_ignore.$valid" ]; then
          if [[ $serial == $valid* ]]; then
            echo -n $dev > /opt/pos/.hardlock2_device
            echo $serial
          fi
        fi
      done
    fi
  done

  exit
fi


for dev in `ls /sys/class/net/*/address 2> /dev/null`; do
  serial=`cat $dev | sed 's/\://g'`

  if [ "$serial" != "" ]; then
    for valid in `echo $valid_wlan_hardlocks`; do
      if [ ! -e "/opt/pos/.machine_id_ignore.$valid" ]; then
        if [[ $serial == $valid* ]]; then
          POS_HARDLOCK="$serial"
          echo -n $dev > /opt/pos/.hardlock2_device
          break
        fi
      fi
    done
  fi
done

#if [ "$POS_HARDLOCK" = "" ]; then
#  POS_HARDLOCK=""

  for dir in `ls /media/`; do
    if [ -d "/media/$dir" ] && [ -d "/media/$dir/pos" ] && [ -e "/media/$dir/pos/hardlock" ]; then
      TMP=`$DIR/device_id "/media/$dir"`

      if [ "$TMP" != "" ]; then
        POS_HARDLOCK=$TMP
      fi
    fi
  done

#fi

if [ "$FROM_MAC" = "1" ]; then
  POS_HARDLOCK=""
fi

if [ "$POS_HARDLOCK" = "" ]; then
  for dir in `ls /sys/class/net`; do
    if [ "$dir" != "lo" ]; then
      if [ -e "/sys/class/net/$dir/address" ]; then
        MY_TMP=`cat /sys/class/net/$dir/address | sed 's/\://g'`

        if [ "$MY_TMP" != "" ]; then
          for valid in `echo $valid_wlan_hardlocks`; do
            if [ ! -e "/opt/pos/.machine_id_ignore.$valid" ]; then
              if [[ $MY_TMP != $valid* ]]; then
                POS_HARDLOCK="MAC$MY_TMP"
              fi
            fi
          done
        fi
      fi
    fi
  done
fi

echo -n $POS_HARDLOCK




