=================================================================== RCS file: /cvs/palm/manage_pre/manage_pre,v retrieving revision 1.6 retrieving revision 1.9 diff -u -r1.6 -r1.9 --- palm/manage_pre/manage_pre 2009/09/21 19:00:06 1.6 +++ palm/manage_pre/manage_pre 2010/07/12 18:37:52 1.9 @@ -1,31 +1,24 @@ #!/bin/sh -# $Id: manage_pre,v 1.6 2009/09/21 18:00:06 andrew Exp $ +# $AFresh1: manage_pre,v 1.8 2010/03/10 19:35:40 andrew Exp $ -local _pre_id='Palm, Pre, 0316' -#local _pre_label='Pre' -#local _ipod_label='iPod' -local _mount_dir='/mnt/pre' -local _name=`basename $0` -local _unison_config='vogonpa' +# Copyright (c) 2010 Andrew Fresh +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +local _pre_id='Palm, Pre, 0000' +local _mount_point='/mnt/pre' +local _unison_config='palm_pre' -local _action="$*" -case "$_name" in - eject_pre) - _action=eject - ;; - sync_pre) - _action=sync - ;; - mount_pre) - _action=mount - ;; -esac - -if [ -z "$_action" ]; then - echo "manage_pre mount|sync|eject" - exit 255 -fi - find_pre() { local _dev=`dmesg | grep 'Palm, Pre' | tail -1 | cut -d' ' -f 1` if [ X"$_dev" == X"" ]; then @@ -55,7 +48,7 @@ echo Not mounted fi $SUDO /bin/eject $_dev 2> /dev/null && echo Ejected Pre - $SUDO rmdir $_mount_dir 2> /dev/null + $SUDO rmdir $_mount_point 2> /dev/null } mount() { @@ -64,10 +57,24 @@ echo Already mounted: ${_mounted%% type*} return fi - $SUDO mkdir -p $_mount_dir - $SUDO chgrp users $_mount_dir - $SUDO chmod g+w $_mount_dir - $SUDO /sbin/mount $_dev $_mount_dir && echo Mounted Pre on $_mount_dir + $SUDO mkdir -p $_mount_point + $SUDO chgrp users $_mount_point + $SUDO chmod g+w $_mount_point + + $SUDO /sbin/mount $_dev $_mount_point 2> /dev/null + local _status=$? + + if [ "$_status" != 0 ]; then + echo -n "Waiting for $_dev to be ready " + while [ "$_status" != 0 ]; do + echo -n . + sleep 1 + $SUDO /sbin/mount $_dev $_mount_point 2> /dev/null + _status=$? + done + echo + fi + echo Mounted Pre on $_mount_point } synchronize() { @@ -81,8 +88,7 @@ echo Synchronizing Pre #if [ -e /usr/local/bin/rsync ]; then - #rsync -rv --delete --size-only --exclude '*.pid' \ - #.backgrounds/vogonpa/ /mnt/pre/wallpapers_mine/ + # rsync -rv --delete --size-only --exclude '*.pid' #fi if [ -e /usr/local/bin/unison ]; then @@ -93,6 +99,25 @@ eject fi } + +local _action="$*" +local _name=`basename $0` +case "$_name" in + eject_pre) + _action=eject + ;; + sync_pre) + _action=sync + ;; + mount_pre) + _action=mount + ;; +esac + +if [ -z "$_action" ]; then + echo "manage_pre mount|sync|eject" + exit 255 +fi local _dev=`find_pre` if [ X"${_dev}" == X"" -o ! -e $_dev ]; then