#!/bin/sh
PATH="$PATH:/bin:/etc:/mnt/usr/bin:/mnt/bin:/mnt/etc:/mnt/usr/bin/X11:."
export LD_LIBRARY_PATH=/mnt/lib
hash -r
INSTROOT=/

if [ "$1" = "-instroot" ]; then
	INSTROOT=$2
	shift 2
	INXLIB=/mnt/usr/X386/lib/X11
	INXBIN=/mnt/usr/X386/bin
else
	INXLIB=/usr/X386/lib/X11
	INXBIN=/usr/X386/bin
fi
if [ '-demo' = "$1" ]; then
	ISDEMO='y'
	shift
	OUTXLIB=/local/X386/lib/X11
	OUTXBIN=/local/X386/bin
else
	OUTXLIB=$INSTROOT/usr/X386/lib/X11
	OUTXBIN=$INSTROOT/usr/X386/bin
	cd $INSTROOT/
fi

function setupmouse()
{
	while [ "$MOUSE" = "" ]; do
		echo "0 - Skip setup"
		echo "1 - Logitech BusMouse"
		echo "2 - PS2 Bus Mouse"
		echo "3 - Microsoft Bus Mouse"
		echo "4 - ATI XL Bus Mouse"
		echo "5 - Microsoft Serial Mouse"
		echo "6 - Logitech Serial Mouse"
		echo "7 - MouseSystems Serial Mouse"
		echo "8 - MM Serial Mouse"
		echo ""
		echo -n "What type of mouse do you have (0-8): "
		read ans;
		case $ans in
		0) MOUSE=skip; exit 0;;
		1) MOUSE=bmouselogitec; XMOUSE=Busmouse ;;
		2) MOUSE=ps2aux; XMOUSE=Microsoft ;;
		3) MOUSE=bmousems; XMOUSE=Busmouse ;;
		4) MOUSE=bmouseatixl; XMOUSE=Busmouse ;;
		5) MOUSE=serial; XMOUSE=Microsoft ;;
		6) MOUSE=serial; XMOUSE=Logitech ;;
		7) MOUSE=serial; XMOUSE=MouseSystems ;;
		8) MOUSE=serial; XMOUSE=MMSeries ;;
		*) echo "invalid mouse type" ;;
		esac
	done
	while [ "$MOUSE" = "serial" ]; do
		echo "1 - Com1 (/dev/cua0)" 
		echo "2 - Com2 (/dev/cua1)" 
		echo "3 - Com3 (/dev/cua2)" 
		echo "4 - Com4 (/dev/cua3)" 
		echo ""
		echo -n "Your mouse is on which com port (1-4): "
		read ans;
		case $ans in
		1) MOUSE=cua0 ;;
		2) MOUSE=cua1 ;;
		3) MOUSE=cua2 ;;
		4) MOUSE=cua3 ;;
		esac
	done
	XFILE=$INXLIB/Xconfig.in
	if [ -f $XFILE ]; then
		echo -n "Does your mouse have 3 buttons? [n]: "
		read IS3BUTTON;
		echo -n "Do you wish to be limited to Low Resolution (640x480)? [n]: ";
		read ISLOWRES;
		cat $XFILE | \
			(if [ "$ISLOWRES" = 'y' ]; then sed 's/#LO//'; else sed 's/#HI//'; fi) | \
			(if [ "$ISDEMO" = 'y' ]; then grep -v '#'; else sed '/#.*dev/d'; fi) | \
			(if [ "$IS3BUTTON" != 'y' ]; then sed '/Emulate3Buttons/d'; else cat; fi) |
			sed "s+^.*/dev/.*+$XMOUSE \"/dev/mouse\"+" > $OUTXLIB/Xconfig.local
	fi
	if [ "$MOUSE" != "skip" ]; then (cd dev && ln -sf $MOUSE mouse ); fi
	return 0;
}


function setupServer()
{
	BOARD=""
	echo ""
	echo "   0 - quit"
	echo "   1 - S3"
	echo "   2 - Mach8"
	echo "   3 - Mach32"
	echo "   4 - 8514"
	echo "   5 - Standard VGA Mono"
	echo "   6 - Standard VGA 16 color"
	echo "   7 - Super VGA 256 color"
#	echo "   8 - Hercules Mono"
	echo ""
	echo -n "Select which X driver? (0-7): "
	read ans; 
	case $ans in
		0)	break;;
		1)	BOARD="S3";;
		2)	BOARD="Mach8";;
		3)	BOARD="Mach32";;
		4)	BOARD="8514";;
		5)	BOARD="Mono";;
		6)	BOARD="VGA16";;
		7)	BOARD="SVGA";;
	esac
	if [ "" != "$BOARD" ]; then
		if [ ! -e $OUTXBIN/XF86_$BOARD ]; then
			echo "Standby, linking server XF86_$BOARD ...";
			(cd $INSTROOT/usr/X386/lib/Server && doLink $BOARD && \
				chmod u+s $OUTXBIN/XF86_$BOARD)
		fi
	fi
	(cd $OUTXBIN && ln -sf XF86_$BOARD $OUTXBIN/X)
}

setupmouse
setupServer
