clean up hotplug mounting scripts

SVN-Revision: 4673
This commit is contained in:
Mike Baker 2006-08-26 01:04:43 +00:00
parent aae33f76f8
commit 69fb72bf22
3 changed files with 59 additions and 52 deletions

View file

@ -0,0 +1,26 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
DEV=${DEVPATH##*/}
{
echo "ACTION=$ACTION DEVPATH=$DEVPATH $0 $*"
case "$ACTION" in
add)
echo -ne "waiting for $DEV"
while [ ! -b /dev/$DEV ]; do {
echo -ne "."
sleep 1
time=$((time+1)); [ $time -gt 10 ] && break
}; done
[ ${DEV%%[0-9]} != ${DEV} ] && {
mkdir -p /tmp/$DEV
mount /dev/$DEV /tmp/$DEV -t auto -o sync
}
;;
remove)
umount /tmp/$DEV
rm -rf /dev/$DEV /tmp/$DEV
;;
esac
} 2>&1 | logger

View file

@ -0,0 +1,33 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
case "$ACTION" in
add)
[ -f /sys/${DEVPATH}/idVendor -a "$(cat /sys/${DEVPATH}/idVendor)" -ne "0000" ] && {
cd /sys/${DEVPATH}
NUM=${DEVPATH##*/}
HOST=$(find ${NUM}:*/host* -type d)
HOST=${HOST##*/host}
echo -ne "waiting for disk"
while [ ! -d "/dev/scsi/host${HOST}/bus0/target0/lun0" ]; do {
echo -ne "."
sleep 1;
time=$((time+1)); [ $time -gt 10 ] && break
}; done
echo
cd /sys/bus/scsi/devices/${HOST}\:0\:0\:0
for BLOCK in block:* ; do {
cd ${BLOCK}
BLOCK=${BLOCK##block\:}
ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/disc /dev/${BLOCK}
for DEV in ${BLOCK}*; do {
ln -sf /dev/scsi/host${HOST}/bus0/target0/lun0/part${DEV##$BLOCK} /dev/$DEV
}; done
}; done
} 2>&1 | logger
;;
esac

View file

@ -1,52 +0,0 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
mount_storage() {
cd /dev/discs
for dev in disc*; do
[ -f /tmp/.${dev}_id ] || {
echo ${INTERFACE}${PRODUCT} > /tmp/.${dev}_id
mount | grep /mnt/${dev} || (
[ -d /mnt/. ] || {
mkdir -p /tmp/mnt
ln -s /tmp/mnt /
}
cd $dev
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
done
)
}
done
}
umount_storage() {
for tmp in /tmp/.*_id; do
id=$(cat $tmp 2>&-)
[ "${INTERFACE}${PRODUCT}" = "$id" ] && {
rm -f $tmp
disc=${tmp##*disc}
disc=${disc%%_id}
for disc in /mnt/disc${disc}*; do
umount -f $disc || umount -l $disc
done
}
done
}
[ -f /proc/bus/usb/devices ] || mount -t usbfs none /proc/bus/usb
case "$ACTION" in
add)
case "${INTERFACE%%/*}" in
8) mount_storage ;;
esac
;;
remove)
case "${INTERFACE%%/*}" in
8) umount_storage ;;
esac
;;
esac