#!/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