#!/bin/bash
. /lib/lsb/init-functions
PATH=/sbin:/bin:/usr/sbin:/usr/bin
INFO=":: Starting 3G USB modem initialization"

rc_reset

case "$1" in
	start)
		lsusb | gawk 'BEGIN { FS="[ :]" } { print $2" "$4" "$7" "$8 }' | while read BUS DEVICE VENDOR PRODUCT
		do
			[ -e /etc/usb_modeswitch.d/$VENDOR:$PRODUCT ] || continue
			echo -e -n "$INFO\n   probing $VENDOR:$PRODUCT ($BUS $DEVICE)"; INFO=""
			usb_modeswitch -Q -b $BUS -g $DEVICE -v $VENDOR -p $PRODUCT -c /etc/usb_modeswitch.d/$VENDOR:$PRODUCT
			touch /tmp/usb_modeswitch
		done
		[ -e /tmp/usb_modeswitch ] && rc_status -v
	;;
	show)
		[ -e /proc/tty/driver/usbserial ] || return 0
		echo -e "device\tvendor:product\t\tpath\t\tusb id"
		while read LINE
		do
			ID=$(echo "$LINE"|sed 's/\([0-9]*\):.*/\1/')
			[ "$ID" == "usbserinfo" ] && continue

			VENDOR=$(echo "$LINE" | sed 's/.* vendor:\([0-9a-f]*\) .*/\1/')
			PRODUCT=$(echo "$LINE" | sed 's/.* product:\([0-9a-f]*\) .*/\1/')
			USBPATH=$(echo "$LINE" | sed 's/.* path:\(.*\)/\1/')

			USBID=$(readlink "/sys/bus/usb-serial/devices/ttyUSB$ID" | sed 's/.*\.\([0-9]*\)\/ttyUSB.*/\1/');
			echo -e "ttyUSB$ID\t$VENDOR:$PRODUCT\t($USBPATH)\t$USBID"
		done < /proc/tty/driver/usbserial
	;;
esac
rc_exit
