[BACK]Return to manage_pre CVS log [TXT][DIR] Up to [local] / palm / manage_pre

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>