1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/bin/bash
while getopts "qv:" OPT; do
case "$OPT" in
q)
QUIET=1
;;
v)
VERSION="$OPTARG"
;;
esac
done
if [ -z "$VERSION" ]; then
if [ -d "/sys/hypervisor" ]; then
if [ "$(cat /sys/hypervisor/type)" = xen ]; then
DIR=/sys/hypervisor/version
VERSION_EXTRA=$(cat $DIR/extra)
if [ "$VERSION_EXTRA" = "-unstable" ]; then
VERSION=unstable
else
VERSION="$(cat $DIR/major).$(cat $DIR/minor)$VERSION_EXTRA"
fi
else
[ "$QUIET" ] || echo "WARING! Can't read type from sysfs!" >&2
fi
else
[ "$QUIET" ] || echo "WARING! Can't find hypervisor information in sysfs!" >&2
fi
fi
if [ -z "$VERSION" ]; then
VERSION="default"
fi
if [ -d "/usr/lib/xen-$VERSION" ]; then
echo "$VERSION"
exit 0
fi
if [ -d "/usr/lib/xen-default" ]; then
[ "$QUIET" ] || echo "WARING! Can't find version $VERSION of xen utils, fallback to default version!" >&2
echo "default"
exit 0
fi
[ "$QUIET" ] || echo "ERROR! Can't find default version of xen utils, bailing out!" >&2
exit 1
|