#!/bin/sh

. shell-error

[ -z "$1" ] && fatal "Usage: $0 <interface>"

/sbin/service messagebus start >/dev/null 2>/dev/null
/sbin/service haldaemon start >/dev/null 2>/dev/null

iface_udi="$(hal-find-by-property --key=net.interface --string="$1"|head -n1)" #ignore duplicates
[ -n "$iface_udi" ] || fatal "interface $1 not found"

device_udi="$(hal-get-property --udi="$iface_udi" --key=net.originating_device)"
[ -n "$device_udi" ] || fatal "originating device for interface $1 not found"

device_subsystem="$(hal-get-property --udi="$device_udi" --key=info.subsystem)"

case "$device_subsystem" in
    pci)
	printf '%s\n' \
		"$(hal-get-property --udi="$device_udi" --key=pci.product)"
	;;
    usb)
	printf '%s\n' \
		"$(hal-get-property --udi="$device_udi" --key=usb.vendor)"
	;;
    pcmcia)
	printf '%s\n' \
		"$(hal-get-property --udi="$device_udi" --key=info.product)"
	;;
    *)
	fatal "wrong device subsystem $device_subsystem"
esac
