#!/bin/bash

i=0
max=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_count)

while [ $i -lt $max ] ; do
	echo $i > /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index 
	keyname=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index_name)
	keytype=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index_type)
	case "$keytype" in 
		"ui8 ")
			keydata=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index_data | od -An -vtu1)
			;;
		ui16)
			keydata=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index_data | od -An -vtu2 --endian=big)
			;;

		*)
			keydata=$(cat /sys/bus/platform/drivers/applesmc/applesmc.768/key_at_index_data | xxd -c 32 -g 1 -p)
			;;
	esac
	echo "  $keyname  [$keytype]  $keydata" $i
	i=$(($i+1))
done
