#!/bin/sh
#
# Copyright (c) 1989 Jan-Simon Pendry
# Copyright (c) 1989 Imperial College of Science, Technology & Medicine
# Copyright (c) 1989 The Regents of the University of California.
# All rights reserved.
#
# This code is derived from software contributed to Berkeley by
# Jan-Simon Pendry at Imperial College, London.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#      This product includes software developed by the University of
#      California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
#    may be used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#	%W% (Berkeley) %G%
#
# $Id: os-type,v 5.2.2.3 1992/08/27 10:18:36 jsp Exp $
#

#
# Take a pot-shot at your os type
#
echo "#	... No OS= option specified; dynamically determining OS type" >&2

PATH=/bin:/usr/bin:/usr/ucb

#
# First try poking around in /etc/motd
#

case "`exec 2>/dev/null; head -2 /etc/motd`" in
*"Sun UNIX 4.2 Release 3."*)	OS=sos3;;
*"SunOS Release 4."*)		OS=sos4;;
*"SunOS 4."*)			OS=sos4;;
*"SunOS 5."*)			OS=sos5;;
*"Solaris 2."*)			OS=sos5;;
*"HP-UX on the HP"*)		OS=hpux;;
*"Ultrix V2."*)			OS=u2_2;;
*"Ultrix V3."*)			OS=u3_0;;
*"Ultrix-32 V3."*)		OS=u3_0;;
*"Ultrix Worksystem V2."*)	OS=u3_0;;
*"ULTRIX V4.4"*)		OS=u4_4;;
*"ULTRIX V4.3"*)		OS=u4_3;;
*"ULTRIX V4.2"*)		OS=u4_2;;
*"Ultrix 4.2"*)			OS=u4_2;;
*"ULTRIX V4."*)			OS=u4_0;;
*"OSF/1"*)			OS=osf1;;
*"HLH OTS Version 1."*)		OS=hlh42;;
*"RISC iX release 1."*)		OS=riscix;;
*"FPX 4."*)			OS=fpx4;;
*"HCX/UX"*)			OS=hcx;;
*"OSF/1"*)			OS=osf1;;
*"BSDI BSD/386 1.1"*)		OS=bsdi11;;
*"NetBSD"*)			OS=netbsd;;
*"FreeBSD"*)			OS=freebsd;;
*"4.4 BSD UNIX"*)		OS=bsd44;;
*"4.3 BSD Reno UNIX"*)		OS=bsd44;;
*"4.3 BSD UNIX"*)		if [ -f /etc/minidisk ]; then
					OS=acis43
				elif [ -f /sbin/nfsiod ]; then
					OS=bsd44	# prototype
				else
					OS=xinu43
				fi;;
*"Alliant Concentrix"*)		OS=concentrix;;
*"Umax 4.3"*)			OS=umax43;;
*"NEWS-OS Release 4"*)			OS=news4;;
esac

if [ -z "${OS}" ]; then

	echo "#	checking to see what /bin/uname will tell me " >&2

	if [ -f /bin/uname ]; then
		OS_TMP=`/bin/uname -a`
	elif [ -f /usr/bin/uname ]; then
		OS_TMP=`/usr/bin/uname -a`
	fi

	case "$OS_TMP" in
        	*IRIX*6.*) OS=irix6
		;;
        	*IRIX*5.*) OS=irix5
		;;
        	*IRIX*4.*) OS=irix4
		;;
	        *IRIX*3.*) OS=irix3
		;;
		SunOS*4.*) OS=sos4
		;;
		# sigh this works only for AT&T svr4 on a 386 box.
		# uname doesn't provice an os on the os/
		*4.0*386/AT) OS=svr4
		;;
		SINIX*5) OS=svr4
		;;
		aoi*4.*) OS=aoi
		;;
		riscix" "*) OS=riscix
		;;
		*[Ll]inux*) OS=linux
		;; 	
	esac
fi

if [ -z "${OS}" ]; then
	#
	# Well, that didn't work so apply some heuristics
	# to the filesystem name space...
	#
	echo "#	... inspecting File system ..." >&2
	if [ -d /usr/src/uts/mips ]; then
		OS=riscos
		elif [ -f /etc/comply ]; then
			OS=utek
		elif [ -d /usr/lib/methods -o -d /etc/methods ]; then
			OS=aix3
		elif [ -d /opt/SUNWdiag ]; then
 			OS=sos5
  # Bull. this will work on almost any system including AT&T svr4
  #				elif [ -f /usr/bin/cat ]; then
  #					OS=sos4
		elif [ -f /etc/nd ]; then
			OS=sos3
		elif [ -f /etc/elcsd ]; then
			echo "#	... Ultrix - assuming U4.0 ..." >&2
			OS=u4_0
		elif [ -f /hp-ux ]; then
			OS=hpux
		elif [ -f /etc/ttylocal ]; then
			OS=xinu43
		elif [ -d /NextApps ]; then
			OS=next
		elif [ -f /mach ]; then
			if [ -f /usr/mach3/bin/mach3 -a /usr/mach3/bin/mach3 ]; then
				OS=mach3
			else
				OS=mach2
			fi
		elif [ -f /mach ]; then
			OS=mach2
		elif [ -f /etc/minidisk ]; then
			OS=acis43
		elif [ -f /etc/toolboxdaemon ]; then
			OS=aux
		elif [ -f /386bsd ]; then
			OS=386bsd 
		elif [ -f /etc/bad144 ]; then
			OS=bsd43
		elif [ -f /sbin/nfsiod ]; then
			OS=bsd44
		elif [ -d /vrm ]; then
			OS=aix2
		elif [ -f /bin/pyr ] && /bin/pyr; then
			OS=pyrOSx
		elif [ -f /etc/gl/ucode ]; then
			OS=irix3
		elif [ -f /usr/gfx/ucode -o -d /usr/gfx/ucode ]; then
			# /usr/gfx/ucode is a directory under IRIX 4.0.5 
			OS=irix4
		elif [ -f /stellix ]; then
			OS=stellix
		else
			case "`(sh ../config/arch)2>/dev/null`" in
			ibm032)    OS=acis43;;
			aviion)    OS=dgux;;
			ccur*)	   OS=rtu`uname -r | cut -f1 -d.`;;
			mc*)	   OS=rtu`uname -r | cut -f1 -d.`;;
			i386)	   OS=isc3;;
			ix386)	   OS=isc3;;
			vax)	   OS=bsd43;;
			*)	   OS=unknown;;
			esac
		fi
fi

echo "#	... OS appears to be \"${OS}\"" >&2
echo "${OS}"
exit 0
