#!/bin/bash

CMD_ECHO=/usr/bin/echo
CMD_CAT=/usr/bin/cat
CMD_TR=/usr/bin/tr

#Check Processor
PROCCESSOR=$(uname -p)
if [ $? -ne 0 ]; then
	$CMD_ECHO "Processor Error"
	exit 1
fi
# Check for x86 
if [ "$PROCCESSOR" == "x86_64" ]; then
	COMMAND=$(/usr/bin/systemd-detect-virt)
	if [ $? -ne 0 ]; then
		$CMD_ECHO "Hypervisor Error"
		exit 1
	else
		$CMD_ECHO "$COMMAND"
		exit 0
	fi
# Check for POWER
elif [ "$PROCCESSOR" == "ppc64le" ]; then
	# Device tree path
	DEVTREE=/proc/device-tree
	# Check file
	CHECKFILE=$($CMD_CAT $DEVTREE/compatible | $CMD_TR -d '\0')
	# Check for POWER Non Virtualized
	if [[ "$CHECKFILE" == *"ibm,powernv"* ]]; then
		$CMD_ECHO "POWERNV"
		exit 1
	# Check for POWERKVM
	elif [[ "$CHECKFILE" == "qemu,pseries" ]]; then
		$CMD_ECHO "POWERKVM"
		exit 0
	else
		# Check for POWERVM
		if [ -a $DEVTREE/ibm,fw-net-version ]; then
			$CMD_ECHO "POWERVM"
			exit 0
		elif [ -a $DEVTREE/ibm,powervm-partition ]; then
			$CMD_ECHO "POWERVM"
			exit 0
		else
			$CMD_ECHO "Unknown Power Hypervisor"
			exit 1
		fi
	fi
else
	$CMD_ECHO "Unknown Architecture"
	exit 1
fi


