crabs_usbmgr-1.0.3 ©2004-2006 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
1 #!/bin/bash 2 # 3 # ============================================================================= 4 # crabs_usbmgr-1.0.3 : Universal Serial Bus MaNaGer 5 # Copyright (C) 2004-2006 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com) 6 # 7 # Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer 8 # et/ou le modifier en respectant les termes de la GNU General Public License 9 # version 2 ou (suite a votre propre choix) une version ulterieure. 10 # 11 # Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais 12 # sans aucune garantie, meme si il est associe a un produit qui vous en 13 # propose une. Conformez-vous a la GNU General Public License pour avoir 14 # plus de precisions. 15 # 16 # L'auteur ne peut etre tenu responsable de l'utilisation faite des 17 # composantes associees a ce projet (en partie ou dans leur totalite). 18 # 19 # Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC 20 # de ce projet sous le nom gnu_gpl.txt 21 # 22 # ============================================================================= 23 # 24 # On laisse du temps a l'usb de s'initialiser completement 25 # 26 mesg() { 27 /usr/bin/logger -t crabs-usbmgr "$@" 28 } 29 30 if [ "$ACTION" != "add" ] ; then 31 mesg ACTION is not add... 32 exit 1 33 fi 34 fstype=vfat 35 options='rw,unhide,uid=0,gid=0,umask=0,users' 36 abc='abcdefghijklmnopqrstuvwxyz' 37 ID1=`echo $PRODUCT | cut -d/ -f1` 38 ID2=`echo $PRODUCT | cut -d/ -f2` 39 GUID=`printf %04x%04x 0x$ID1 0x$ID2` 40 sleep 2 41 ls /proc/scsi | grep usb-storage > /dev/null || exit 1 42 for usbstorage in /proc/scsi/usb-storage-*/* ; do 43 grep "GUID: $GUID" $usbstorage > /dev/null || continue 44 HOST=`basename $usbstorage` 45 MNT=`dirname $usbstorage` 46 MNT=`basename $MNT` 47 MNT=`echo $MNT | cut -d- -f3` 48 #UNIT=$MNT 49 #((UNIT++)) 50 UNIT=`awk -v h=$HOST 'BEGIN{n=0;r=0} $5=="0"{n++} $1==h{r=n} END{print r}' /proc/scsi/sg/devices` 51 mesg "HOST: $HOST UNIT:$UNIT" 52 LETTER=`echo $abc | cut -c$UNIT` 53 SD="/dev/sd"$LETTER 54 # est-elle deja montee ? 55 grep $SD /var/run/usbmgr/liste 2>&1 >/dev/null 56 if [ $? == 0 ] ; then continue ; fi 57 MNT="/vol/usb-storage-"$MNT 58 mesg "TRY ${SD}1 ON $MNT" 59 fdisk -l $SD || exit 1 60 [ -d $MNT ] || mkdir -p $MNT || exit 1 61 if mount -t $fstype -o $options ${SD}1 $MNT ; then 62 mesg "UNIT ${SD}1 ON $MNT" 63 UNIT=${SD}1 64 else 65 # some stupid USB KEY or MP3 player don't have partitions... 66 if mount -t $fstype -o $options ${SD} $MNT ; then 67 mesg "UNIT ${SD} ON $MNT" 68 UNIT=${SD} 69 else 70 rmdir $MNT 71 continue 72 fi 73 fi 74 [ -f /var/run/usbmgr/started ] && /usr/sbin/usbmgr_add $UNIT $MNT 75 echo "$UNIT $MNT" >> /var/run/usbmgr/liste 76 echo "#!/bin/bash" > $REMOVER 77 echo "/usr/sbin/usbmgr_remove $MNT" >> $REMOVER 78 echo "(grep '"$MNT "' /etc/mtab && umount $MNT) 2>&1 >/dev/null" >> $REMOVER 79 echo "rmdir $MNT" >> $REMOVER 80 chmod +x $REMOVER 81 done 82
Date de génération : 22/09/2011 21:48