#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later

hid_unavailable_report() {
	a=$(echo $1 | tr '[:lower:]' '[:upper:]')
	b=$(basename $(dirname $(ls -d /sys/bus/usb/drivers/usbhid/*/*:$a.*)))

	echo ""
	echo "ATTENTION!"
	echo "Unable to read completely the USB descriptors."
	echo "Please run the following command(s) and then run this script again"
	for i in $b; do
		echo "    sudo sh -c \"echo -n $i > /sys/bus/usb/drivers/usbhid/unbind\""
	done
	echo ""
	echo "Please notice that the USB device will not function after the above"
	echo "operations; you should unplug and replug it to get it working again."
}

devs=$(lsusb -d $1:$2 | wc -l)
case "$devs" in
	0 )
		echo "Error: USB device $1:$2 not found" > /dev/stderr
		exit 1
		;;
	1 )
		echo "Dumping $(lsusb -d $1:$2)" > /dev/stderr
		;;
	* )
		echo "Error: Multiple matches for 'lsusb -d $1:$2'" > /dev/stderr
		exit 1
		;;
esac

# break SPDX tag to hide it to checkpatch
echo '# SPDX-''License-Identifier: GPL-2.0-or-later OR GFDL-1.2-no-invariants-or-later'
echo ''
echo '# Optional comment'

lsusb -v -d $1:$2 | sed 's/ *$//'

lsusb -v -d $1:$2 2>&1 | grep -Fq '** UNAVAILABLE **' && (hid_unavailable_report $1:$2 > /dev/stderr)