#!/bin/bash

# Reset UDC on hotplug.
#
# This script is very hardcoded. It assumes the network profile is usb despite
# the $1 argument likely being a network interface name. Changes in other
# systems are required to make abstraction viable.

case "$2" in
  up)
	if [[ "$(systemctl is-active netctl@usb)" != "active" ]]; then
		echo "USB profile is not active, skipping."
		exit 0
	fi

	# Get the UDC controller name.
	udc_classes=(`ls /sys/class/udc/`)
	udc=${udc_classes[0]}

        echo "" > /sys/kernel/config/usb_gadget/g/UDC
        sleep 1
        echo "$udc" > /sys/kernel/config/usb_gadget/g/UDC
        /usr/bin/netctl restart usb
  	exit 0
	;;
  down)
	exit 0
        ;;
  *)
    echo "Wrong arguments" >&2
    ;;
esac

exit 1


# vim: ft=sh ts=4 et sw=4:
