| version 1.2, 2009/08/12 21:08:23 |
version 1.7, 2009/11/25 21:27:15 |
|
|
| #!/bin/sh |
#!/bin/sh |
| # $Id$ |
# $Id$ |
| |
|
| local _pre_label='Pre' |
local _pre_id='Palm, Pre, 0000' |
| local _ipod_label='iPod' |
#local _pre_label='Pre' |
| |
#local _ipod_label='iPod' |
| local _mount_dir='/mnt/pre' |
local _mount_dir='/mnt/pre' |
| local _name=`basename $0` |
local _name=`basename $0` |
| local _unison_config='vogonpa' |
local _unison_config='vogonpa' |
|
|
| find_pre() { |
find_pre() { |
| local _dev=`dmesg | grep 'Palm, Pre' | tail -1 | cut -d' ' -f 1` |
local _dev=`dmesg | grep 'Palm, Pre' | tail -1 | cut -d' ' -f 1` |
| if [ X"$_dev" == X"" ]; then |
if [ X"$_dev" == X"" ]; then |
| echo Pre not found! >&2 |
echo Pre not found! >&2 |
| exit 1 |
exit 1 |
| fi |
fi |
| |
|
| local _label=`disklabel ${_dev} 2>/dev/null | awk '/^label:/ { print $2 }'` |
local _id=`dmesg | grep "^$_dev at " | tail -1 | sed -e 's/.*<//' -e 's/>.*$//'` |
| if [ X"$_label" != X"$_pre_label" -a X"$_label" != X"$_ipod_label" ]; then |
if [ X"$_id" != X"$_pre_id" ]; then |
| echo "Pre not labeled properly [$_label]" >&2 |
echo "Pre [$_dev] not correct id [$_id]" >&2 |
| exit 2 |
exit 2 |
| fi |
fi |
| |
|
| echo /dev/${_dev}i |
echo /dev/${_dev}i |
|
|
| local _mounted=`is_mounted $_dev` |
local _mounted=`is_mounted $_dev` |
| if [ X"" != X"$_mounted" ]; then |
if [ X"" != X"$_mounted" ]; then |
| /bin/sync |
/bin/sync |
| /sbin/umount $_dev && echo Unmounted Pre |
$SUDO /sbin/umount $_dev && echo Unmounted Pre |
| else |
else |
| echo Not mounted |
echo Not mounted |
| fi |
fi |
| /bin/eject $_dev 2> /dev/null && echo Ejected Pre |
$SUDO /bin/eject $_dev 2> /dev/null && echo Ejected Pre |
| rmdir $_mount_dir 2> /dev/null |
$SUDO rmdir $_mount_dir 2> /dev/null |
| } |
} |
| |
|
| mount() { |
mount() { |
|
|
| echo Already mounted: ${_mounted%% type*} |
echo Already mounted: ${_mounted%% type*} |
| return |
return |
| fi |
fi |
| mkdir -p $_mount_dir |
$SUDO mkdir -p $_mount_dir |
| chgrp users $_mount_dir |
$SUDO chgrp users $_mount_dir |
| chmod g+w $_mount_dir |
$SUDO chmod g+w $_mount_dir |
| /sbin/mount $_dev $_mount_dir && echo Mounted Pre on $_mount_dir |
$SUDO /sbin/mount $_dev $_mount_dir && echo Mounted Pre on $_mount_dir |
| } |
} |
| |
|
| synchronize() { |
synchronize() { |
| local _mounted=`is_mounted $_dev` |
local _mounted=`is_mounted $_dev` |
| |
local _did_mount="" |
| if [ X"" == X"$_mounted" ]; then |
if [ X"" == X"$_mounted" ]; then |
| echo Not mounted |
mount || exit 255 |
| return 1 |
_did_mount=1 |
| fi |
fi |
| |
|
| echo Synchronizing Pre |
echo Synchronizing Pre |
|
|
| #fi |
#fi |
| |
|
| if [ -e /usr/local/bin/unison ]; then |
if [ -e /usr/local/bin/unison ]; then |
| /usr/local/bin/unison $_unison_config |
/usr/local/bin/unison $_unison_config -auto -batch -ui text |
| |
fi |
| |
|
| |
if [ ! -z "$_did_mount" ]; then |
| |
eject |
| fi |
fi |
| } |
} |
| |
|