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