#!/bin/bash

PROG=$(basename $0)
OUT_OS=n
OUT_HW=n
SP=-

usage()
{
	echo "Usage:   $PROG [OPTION]"
	echo "Options:"
	echo "    -h: usage help"
	echo "    -s: print os (lnx sun dwn irx osf hpx)"
	echo "    -w: print hw (x32 x64 spc ppc mps axp hpa)"
	echo "    -a: print os and hw"
	echo "    -p: path separator (lnx/x64)"
	echo "    -d: dash separator (lnx-x64)"
}

while getopts ":hswapd" opt
do
	case $opt in
		h)
			usage
			exit 1
			;;
		s)
			OUT_OS=y
			;;
		w)
			OUT_HW=y
			;;
		a)
			OUT_OS=y
			OUT_HW=y
			;;
		p)
			SP=/
			;;
		d)
			SP=-
			;;
	esac
done
shift $(($OPTIND-1))

#echo $*

case $(uname -s 2> /dev/null) in
	Linux)
		OS=lnx
		case $(uname -m) in
			i?86)
				HW=x86-32
				;;
			x86_64)
				HW=x86-64
				;;
		esac
		;;

	SunOS)
		OS=sun
		case $(/bin/isainfo -nv) in
			32*sparc*)
				HW=spc-32
				;;
			64*sparc*)
				HW=spc-64
				;;
			32*i386*)
				HW=x86-32
				;;
			64*i386*)
				HW=x86-64
				;;
		esac
		;;

	Darwin)
		OS=dwn
		case $(uname -p) in
			i?86)
				HW=x86-64
				;;
			powerpc)
				HW=ppc-32
				;;
		esac
		;;

	IRIX*)
		OS=irx
		case $(uname -p) in
			mips*)
				case $(uname -s) in
					IRIX64)
						HW=mps-64
						;;
					*)
						HW=mps-32
						;;
				esac
				;;
			*)
				HW=unk
				;;
		esac
		;;

	OSF*)
		OS=osf
		HW=axp
		;;

	HP-UX*)
		OS=hpx
		HW=hpa
		;;
esac

: ${OS:=any}
: ${HW:=any}

if [ $OUT_OS = "y" ]
then
	if [ $OUT_HW = "y" ]
	then
		echo ${OS}${SP}${HW}
	else
		echo ${OS}
	fi
else
	if [ $OUT_HW = "y" ]
	then
		echo ${HW}
	fi
fi

