#!/bin/sh # # hotplug for block devices #logger "$*" `env` dest() { dev=$1 blkid="$(blkid | grep /dev/$dev:)" label="$(echo "$blkid" | sed 's/.*LABEL=\"\([^\"]*\)\".*\|.*/\1/')" uuid="$(echo "$blkid" | sed 's/.*UUID=\"\(\S*\)\".*\|.*/\1/')" if [ -n "$label" ]; then echo "$label" | sed "s/ /_/g;s/[^0-9A-Za-z._\-]//g" else test -z "$uuid" && uuid=$dev if ! grep -q "$uuid$" /var/spool/usb.ids 2>/dev/null; then nr=1 while grep -q "^$nr"$'\t' /var/spool/usb.ids 2>/dev/null; do nr=$(($nr+1)) done echo -e "$nr\t$uuid" >> /var/spool/usb.ids fi echo "usb-$(grep "$uuid$" /var/spool/usb.ids | cut -f1)" fi } case "$ACTION" in add) if [ -z "${DEVNAME##sd*}" ]; then mountdev -n -d "/media/$(dest $DEVNAME)" $DEVNAME >>/var/log/sysinit 2>&1 && blkid | grep /dev/$DEVNAME: >> /var/spool/usb.mounted fi ;; remove) dest="$(mount | grep "^/dev/$DEVNAME " | grep "/media/" | cut -d " " -f 3)" if [ -n "$dest" ]; then umount "$dest" rmdir "$dest" sed "/^\/dev\/$DEVNAME:/d" -i /var/spool/usb.mounted fi ;; change) if [ -z "${DEVNAME##sd*}" ]; then sleep 1 blkid &>/dev/null #blockdev --rereadpt /dev/$DEVNAME fi ;; esac