#!/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