#!/bin/bash
killall -9 XmBlackBerry 2>/dev/null
if [ -L /dev/modem ] ; then
echo "Removing existing /dev/modem"
rm /dev/modem
else
echo "No existing /dev/modem to remove"
fi
if [ -f /tmp/xmb.log ] ; then
echo "Removing existing log"
rm /tmp/xmb.log
else
echo "no log file present"
fi
if [ -f /tmp/xmb.err ] ; then
echo "Removing existing error log"
rm /tmp/xmb.err
else
echo "no error log present"
fi
touch /tmp/blackberry.on
while [ -f /tmp/blackberry.on ]; do
MODEM=""
USB=""
if [ -L /dev/modem ] ; then
echo "Removing existing /dev/modem"
rm /dev/modem
else
echo "No existing /dev/modem to remove"
fi
while [ -z "$MODEM" ] ; do
echo "Looking for BlackBerry on USB"
USB=`lsusb | grep 0fca:0004`
if [ -z "$USB" ] ; then
echo "Could not find BlackBerry on USB."
echo "We should check BlueTooth now."
# TODO: AUTOMATED BT CODE !!
else
echo "Found BlackBerry on USB: $USB"
echo "Looking for XmBlackBerry instance"
xmb=`ps aux | grep XmBlackBerry | grep -v grep`
if [ -z "$xmb" ] ; then
echo "Did not find XmBlackBerry instance."
echo "Looking for X Server."
if [ -f /tmp/.X99-lock ]; then
echo "Found existing X Server"
else
echo "Starting X Server"
Xorg -config /etc/X11/xorg.dummy.conf :99 &
while [ ! -f /tmp/.X99-lock ] ; do
echo "Waiting for X Server to start"
done
fi
echo "Could not find instance. Starting."
/usr/local/bin/XmBlackBerry -display :99 1> /tmp/xmb.log 2> /tmp/xmb.err &
echo "started"
sleep 5
else
echo "Found instance: $xmb"
echo "looking for modem pts"
MODEM=`grep "/dev/pts/*" /tmp/xmb.err | tail -1 | sed s/\"//g | cut -d ' ' -f 5`
if [ -z "$MODEM" ] ; then
echo "could not find modem"
sleep 1
else
echo "Found modem on $MODEM."
echo "$MODEM" > /etc/ppp/peers/blackberry.modem.device
chmod 0666 $MODEM
if [ -L /dev/modem ] ; then
rm /dev/modem
fi
ln -s $MODEM /dev/modem
fi
fi
fi
done
if [ ! -z "$MODEM" ] ; then
if [ -L /dev/modem ] ; then
clear
echo "Modem is on $MODEM. Starting pppd"
echo ""
pppd call blackberry
fi
fi
killall -9 XmBlackBerry 2>/dev/null
done