All pastes #196562 Raw Edit

Stuff

public text v1 · immutable
·published 2006-10-10 18:21 UTC
rendered paste body
#!/bin/sh

sleep 2

XUSER=`who | grep :0 | cut -f 1 -d " "`

case $1 in
        attach)
                # Determine disk the ipod is attached to
                # I haven't tested with 2 ipods. tail -1 may need to be head -1
                DISK=`camcontrol devlist | grep -i ipod | tail -1 | \
                        awk -F\( '{ print $2 }' | awk -F, '{ print $2 }' | \
                        awk -F\) '{ print $1 }'`


                # Allow umass mounters to read the disk and its slices
                chgrp umass /dev/$DISK*
                chmod 660 /dev/$DISK*

                # Make symlink so they can configure their apps
                ln -s "/dev/"$DISK"s2" /dev/ipod

                # Set ownership for X user on mount point
                chown $XUSER /ipod
                chmod 700 /ipod

                # Mount the ipod
                mount_msdosfs /dev/ipod /ipod

                # Make KDE Desktop entry for current user
                USERHOME=`grep $XUSER /etc/passwd | cut -d : -f 6`
                KDEFILE=$USERHOME/Desktop/ipod.desktop
                echo "[Desktop Entry]" > $KDEFILE
                echo "Comment=" >> $KDEFILE
                echo "Comment[en_US]=" >> $KDEFILE
                echo "Encoding=UTF-8" >> $KDEFILE
                echo "Exec=konqueror /ipod" >> $KDEFILE
                echo "GenericName=" >> $KDEFILE
                echo "GenericName[en_US]=" >> $KDEFILE
                echo "Icon=ipod_unmount" >> $KDEFILE
                echo "MimeType=" >> $KDEFILE
                echo "Name=iPod USB Disk" >> $KDEFILE
                echo "Name[en_US]=iPod USB Disk" >> $KDEFILE
                echo "Path=" >> $KDEFILE
                echo "StartupNotify=false" >> $KDEFILE
                echo "Terminal=false" >> $KDEFILE
                echo "TerminalOptions=" >> $KDEFILE
                echo "Type=Application" >> $KDEFILE
                echo "X-DCOP-ServiceType=none" >> $KDEFILE
                echo "X-KDE-SubstituteUID=false" >> $KDEFILE
                echo "X-KDE-Username=" >> $KDEFILE

                # If they have a 2nd desktop, put it there too
                if [ -d $USERHOME/Desktop1 ]
                then
                        cp $KDEFILE $USERHOME/Desktop1/
                fi
                ;;
        detach)
                # Cleanup broken symlinks
                for ipodnode in /dev/ipod*
                do
                        /usr/bin/file $ipodnode | grep broken > /dev/null
                        if [ $? = 0 ]
                        then
                                rm $ipodnode
                        fi
                done
                chown root /ipod
                ;;
        eject)
                USERHOME=`grep $XUSER /etc/passwd | cut -d : -f 6`
                KDEFILE=$USERHOME/Desktop/ipod.desktop

                # Unmount
                umount /ipod
                if [ $? = 0 ]
                then
                        # eject if unmount succeeded
                        DEVID=`camcontrol devlist | grep -i ipod | awk -F"    at scbus" '{ print $2 }' | sed 's/ target /:/' | sed 's/ lun /:/' | cut -f 1 -d " "`
echo "DEVID is $DEVID"
                        camcontrol eject $DEVID
                        rm $KDEFILE
                        KDEFNAME=`basename $KDEFILE`
                        if [ -e $USERHOME/Desktop1/$KDEFNAME ]
                        then
                                rm $USERHOME/Desktop1/$KDEFNAME
                        fi
                fi


                ;;
        *)      exit 1
                ;;
esac