#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

echo "Making sure your sudo passwd is cached..."
sudo -l 
# Get PID of blued daemon for ktrace usage:
if [ `uname -r | awk -F. '{print $2}'` -eq 5 ]
then
	#Leopard
	leopard=1
else
	leopard=
fi

blued_pid=`ps auxww | awk '/sbin\/blued/{print $2}'`
if [ $leopard ]
then
	sudo dtruss -f -p $blued_pid > /tmp/blued.trace 2>&1 &
else
	sudo ktrace -f /tmp/blued.trace -p $blued_pid
fi
echo "Open iSync and try add devices... Press Return after it fails..."
read foo
echo done
if [ $leopard ]
then
	# Kill dtruss on Leopard
	ps -eo uid,pid,args | awk '($1==0)&&/dtruss/{print $2}' | xargs sudo kill 
else
	# Turn off ktrace (-C as root stops all ktraces)
	sudo ktrace -C
fi
sudo chmod 777 /tmp/blued.*
# Look for strings for isync:
raw_data=`strings /tmp/blued.trace | egrep -i 'gmi:|gmm:' | egrep -i 'motorola|v3' | sort -u`
gmi_data=`strings /tmp/blued.trace | grep -i 'gmi:' | egrep -i 'motorola|v3' | sort -u | sed -e 's/.*GMI: //g'`
gmm_data=`strings /tmp/blued.trace | grep -i 'gmm:' | egrep -i 'motorola|v3' | sort -u | sed -e 's/.*GMM: //g'`
# Echo out a suggested string to add to the MetaClasses.plist file:
echo "Try string entry: 
 
<string>$gmi_data+$gmm_data</string> 

If that's more then one line... the raw data is:
$raw_data
"
# Clean up /tmp files
#sudo rm -f /tmp/blued.*
