#! /bin/bash

# paths
DEVFMT=gsm24x7-XXXXXXXXXX.xml
GUEST=gsm24x7-sles11-sp3-x86_64

# code
if [ "${#@}" != 3 ]
then
    echo "Usage: $0 {attach|detach} <busnum> <devnum>" >&2
    exit 1
fi

busnum=$((10#$2))
devnum=$((10#$3))
DEVFILE=$( mktemp --tmpdir "$DEVFMT" )
trap 'rm "$DEVFILE"' EXIT

cat >"$DEVFILE" <<EOF
<hostdev mode='subsystem' type='usb' managed='yes'>
  <source startupPolicy='optional'>
    <address bus='$busnum' device='$devnum'/>
  </source>
</hostdev>
EOF

case "$1" in
  attach)
    virsh attach-device "$GUEST" "$DEVFILE" --persistent
    ;;

  detach)
    virsh detach-device "$GUEST" "$DEVFILE" --persistent
    ;;
esac
