Annotation of palm/manage_pre/manage_pre, Revision 1.1
1.1 ! andrew 1: #!/bin/sh
! 2: # $Id$
! 3:
! 4: local _pre_label='Pre'
! 5: local _ipod_label='iPod'
! 6: local _mount_dir='/mnt/pre'
! 7: local _name=`basename $0`
! 8:
! 9: local _action="$*"
! 10: case "$_name" in
! 11: eject_pre)
! 12: _action=eject
! 13: ;;
! 14: sync_pre)
! 15: _action=sync
! 16: ;;
! 17: mount_pre)
! 18: _action=mount
! 19: ;;
! 20: esac
! 21:
! 22: if [ -z "$_action" ]; then
! 23: echo "manage_pre mount|sync|eject"
! 24: exit 255
! 25: fi
! 26:
! 27: find_pre() {
! 28: local _dev=`dmesg | grep 'Palm, Pre' | tail -1 | cut -d' ' -f 1`
! 29: if [ X"$_dev" == X"" ]; then
! 30: echo Pre not found! >&2
! 31: exit 1
! 32: fi
! 33:
! 34: local _label=`disklabel ${_dev} 2>/dev/null | awk '/^label:/ { print $2 }'`
! 35: if [ X"$_label" != X"$_pre_label" -a X"$_label" != X"$_ipod_label" ]; then
! 36: echo "Pre not labeled properly [$_label]" >&2
! 37: exit 2
! 38: fi
! 39:
! 40: echo /dev/${_dev}i
! 41: }
! 42:
! 43: is_mounted() {
! 44: /sbin/mount | grep "^${_dev} "
! 45: }
! 46:
! 47: eject() {
! 48: local _mounted=`is_mounted $_dev`
! 49: if [ X"" != X"$_mounted" ]; then
! 50: /bin/sync
! 51: /sbin/umount $_dev && echo Unmounted Pre
! 52: else
! 53: echo Not mounted
! 54: fi
! 55: /bin/eject $_dev 2> /dev/null && echo Ejected Pre
! 56: rmdir $_mount_dir 2> /dev/null
! 57: }
! 58:
! 59: mount() {
! 60: local _mounted=`is_mounted $_dev`
! 61: if [ X"" != X"$_mounted" ]; then
! 62: echo Already mounted: ${_mounted%% type*}
! 63: return
! 64: fi
! 65: mkdir -p $_mount_dir
! 66: chgrp users $_mount_dir
! 67: chmod g+w $_mount_dir
! 68: /sbin/mount $_dev $_mount_dir && echo Mounted Pre on $_mount_dir
! 69: }
! 70:
! 71: synchronize() {
! 72: local _mounted=`is_mounted $_dev`
! 73: if [ X"" == X"$_mounted" ]; then
! 74: echo Not mounted
! 75: return 1
! 76: fi
! 77:
! 78: echo Would have syncd
! 79:
! 80: #if [ -e /usr/local/bin/rsync ]; then
! 81: #rsync -rv --delete --size-only --exclude '*.pid' \
! 82: #.backgrounds/vogonpa/ /mnt/pre/wallpapers_mine/
! 83: #fi
! 84: #if [ -e /usr/local/bin/unison ]; then
! 85: #/usr/local/bin/unison voganpa
! 86: #fi
! 87: }
! 88:
! 89: local _dev=`find_pre`
! 90: if [ X"${_dev}" == X"" -o ! -e $_dev ]; then
! 91: echo "Unable to find Pre!"
! 92: exit 3
! 93: fi
! 94:
! 95: local _a
! 96: for _a in $_action; do
! 97: case "$_a" in
! 98: mount)
! 99: mount
! 100: ;;
! 101: sync)
! 102: synchronize
! 103: ;;
! 104: eject)
! 105: eject
! 106: ;;
! 107: *)
! 108: echo "Unrecognized action [$_a]"
! 109: ;;
! 110: esac
! 111: done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>