#!/bin/bash
#                                            von Mirko Dlle <mid@ct.heise.de>
#                                            Dies ist freie Software nach GPL.
#
# bluefind: Startet fr jede in der Konfigurationsdatei /etc/bluemacs genannte
#           Bluetooth-MAC-Adresse einen eigenen Prozess, der turnusmig die
#           Gegenwart des Bluetooth-Gerts berprft und Verlassen bzw.
#           Rckkehr zum Rechner per System-DBus (dbus-signal) vermeldet.

SHORTDELAY=15s
LONGDELAY=1m

if [ "${#@}" = "1" -a -z "${1/??:??:??:??:??:??}" ]; then
  # Daemon-Modus
  STATUS=away
  BDADDR=$1
  while true; do
    NAME=$(hcitool name ${BDADDR})
    if [ -z "${NAME}" ]; then
      if [ "${STATUS}" = "back" ]; then
        STATUS=retry
      elif [ "${STATUS}" = "retry" ]; then
        STATUS=away
	dbus-signal "bluefind:bdaddr=${BDADDR},event=left"
      fi
      sleep ${SHORTDELAY}
    else
      if [ "${STATUS}" != "back" ]; then
        STATUS=back
	dbus-signal "bluefind:bdaddr=${BDADDR},event=arrived"
      fi
      sleep ${LONGDELAY}
    fi
  done
else
  # Daemons starten
  if [ ! -r /etc/bluemacs ]; then
    echo "Liste der Bluetooth-MAC-Adressen nicht gefunden (/etc/bluemacs)"
    exit 1
  fi

  IFS=""

  exec 9</etc/bluemacs;
  while read -u 9 BDADDR; do
    # Kommentare und Leerzeichen entfernen
    BDADDR=${BDADDR//\#*}
    BDADDR=${BDADDR// }
    if [ -n "${BDADDR}" -a -z "${BDADDR/??:??:??:??:??:??}" ]; then
      # Daemon starten
      $0 ${BDADDR} &
    fi
  done
  exec 9>&-
fi
