X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=virt-what.in;h=297956dfb3259ead6c7f9f72b53e92d08da2a4c5;hb=2f47e06;hp=d50426a65ba7225f5ddbd02bf4b7c26c13239b5d;hpb=64acedea081a94352f9b98a808747cbd25e989d4;p=virt-what.git diff --git a/virt-what.in b/virt-what.in index d50426a..297956d 100644 --- a/virt-what.in +++ b/virt-what.in @@ -26,10 +26,15 @@ # The following resources were useful in writing this script: # . http://www.dmo.ca/blog/20080530151107 +# Do not allow unset variables, and set defaults. +set -u +root='' +skip_qemu_kvm=false + VERSION="@VERSION@" function fail { - echo "virt-what: $1" + echo "virt-what: $1" >&2 exit 1 } @@ -70,8 +75,7 @@ PATH=$root@libexecdir@:$root/sbin:$root/usr/sbin:$PATH # Check we're running as root. -uid=`id -u` -if [ "$uid" != 0 ]; then +if [ "x$root" = "x" ] && [ "$EUID" -ne 0 ]; then fail "this script must be run as root" fi @@ -149,7 +153,7 @@ fi # Check for Hitachi Virtualization Manager (HVM) Virtage logical partitioning. if echo "$dmi" | grep -q 'Manufacturer.*HITACHI' && - echo "$dmi" | grep -q 'Product.*HVM LPAR'; then + echo "$dmi" | grep -q 'Product.* LPAR'; then echo virtage fi @@ -171,14 +175,14 @@ fi # Check for Parallels. if echo "$dmi" | grep -q 'Vendor: Parallels'; then echo parallels - skip_qemu_kvm=1 + skip_qemu_kvm=true fi # Check for Xen. if [ "$cpuid" = "XenVMMXenVMM" ]; then echo xen; echo xen-hvm - skip_qemu_kvm=1 + skip_qemu_kvm=true elif [ -f $root/proc/xen/capabilities ]; then echo xen if grep -q "control_d" $root/proc/xen/capabilities; then @@ -186,7 +190,7 @@ elif [ -f $root/proc/xen/capabilities ]; then else echo xen-domU fi - skip_qemu_kvm=1 + skip_qemu_kvm=true elif [ -f $root/sys/hypervisor/type ] && grep -q "xen" $root/sys/hypervisor/type; then # Ordinary kernel with pv_ops. There does not seem to be @@ -217,7 +221,7 @@ fi # seen that it's Parallels. Xen uses QEMU as the device model, so # skip this test if we know it is Xen. -if [ ! "$skip_qemu_kvm" ]; then +if ! $skip_qemu_kvm; then if [ "$cpuid" = "KVMKVMKVM" ]; then echo kvm else