#! /bin/sh
#
# Startup script for Usb  
# Author: Andre Rodrigues / Walter Guerra

switch_to_usb_network() {
    /usr/sbin/pcsuite-disable.sh

    /sbin/lsmod | grep g_file_storage > /dev/null                     
    if [ $? = 0 ]; then                                         
       logger "$0: removing g_file_storage"                  
       initctl emit G_FILE_STORAGE_REMOVE      
       /sbin/rmmod g_file_storage              
    fi 

    osso-usb-mass-storage-disable.sh /dev/mmcblk0p1
    osso-mmc-mount.sh /dev/mmcblk0p1 /home/user/MyDocs/

    /sbin/lsmod | grep g_ether > /dev/null
    if [ $? != 0 ]; then
        /sbin/insmod /lib/modules/2.6.28-omap1/drivers/usb/gadget/g_ether.ko
        RC=$?
    fi

    if [ $RC != 0 ]; then
        logger "$0: failed to install g_ether"
        exit 1
    else
        sleep 2
    fi

    initctl emit --no-wait G_ETHER

    /sbin/ifup usb0
}

switch_to_file_storage() {
    /sbin/ifdown usb0
    /sbin/rmmod g_ether
    
    pcsuite-disable.sh
    osso-mmc-umount.sh /dev/mmcblk0p1
    osso-usb-mass-storage-enable.sh /dev/mmcblk0p1
}

network_status() {
    ifconfig | grep usb0
    exit $?
}

pc_suite_status() {
    lsmod | grep g_nokia
    exit $?
}

switch_to_pc_suite () {
    /sbin/ifdown usb0
    /sbin/rmmod g_ether
    osso-usb-mass-storage-disable.sh /dev/mmcblk0p1
    osso-mmc-mount.sh /dev/mmcblk0p1 /home/user/MyDocs/
    /usr/sbin/pcsuite-enable.sh
}

case "$1" in
start)
	echo "switching to network mode" >> /tmp/usbnet
    switch_to_usb_network
	;;
stop)
	echo "switching back to mass storage mode" >> /tmp/usbnet
    switch_to_file_storage
	;;
status)
    echo "checking network status" > /tmp/usbnet
    network_status
    ;;
suite)
    echo "changing usb to pc suite" >> /tmp/usbnet
    switch_to_pc_suite
    ;;	
suite_status)
    echo "checking pc_suite status" > /tmp/usbnet
    pc_suite_status
    ;;
*)
	echo "usbnet syntax error" >> /tmp/usbnet
	printf "Usage: nm-usb-setup {start|stop|status}\n" >&2
	exit 1
	;;
esac

exit 0

