#!/cmd/rc
# terminal startup
TIMESYNCARGS=(-rLa1000000)
NDBFILE=/cfg/ndb/local

mntgen -s slashn && chmod 666 /srv/slashn

# bind all likely devices (#S was bound in boot)
for(i in f t m v L P u U '$' Σ κ)
	/cmd/bind -a '#'^$i /dev >/dev/null >[2=1]
rm -f /env/i

# set up any partitions
diskparts

# start up local swapping
disk=`{ls /dev/sd*/swap >[2]/dev/null}
if (! ~ $#disk 0)
	swap $disk(1) >/dev/null >[2=1]
rm /env/disk

# we do this before we have a name.  we may need to do network
# setup so that we can get a name.
if(test -e /arch/rc/cmd/termrc.local)
	. /arch/rc/cmd/termrc.local

# cs sets sysname (termrc.local may already have started it so check)
if(! test -e /srv/cs && ! test -e /net/cs)
	ndb/cs -f $NDBFILE
SYSNAME=`{cat /dev/sysname}
if (~ $#SYSNAME 0 || ~ $SYSNAME '') {
	SYSNAME = jehanne	# default
	echo -n $SYSNAME >/dev/sysname
}

# machine specific startup (e.g., for devices not probed)
if(test -e /cfg/$SYSNAME/termrc)
	. /cfg/$SYSNAME/termrc

# start IP on the LAN, if not already configured.  diskless terminals
# are already configured by now.  It's commented out to avoid a long timeout
# on startup waiting for DHCP.
#
# If your site provides DHCP service,
#
#if(! test -e /net/ipifc/0/ctl)
#	ip/ipconfig
#
# Otherwise, see /cfg/$SYSNAME/termrc (/cfg/example/termrc is an example).

# start dns if we have an internet
if(test -e /net/ipifc/0/ctl && ! test -e /srv/dns)
	ndb/dns -r

if(! ~ $terminal *vx32*){
	# start timesync if it isn't running and we weren't told not to
	if(! ps|grep -s timesync)
		if(! ~ $TIMESYNCARGS '')
			ip/timesync $TIMESYNCARGS

	# add the loop-back medium
	if(! grep -s 127.0.0.1 /net/ipselftab)
		ip/ipconfig loopback /dev/null 127.1

	# set things up for vmware
	if(! ~ `{cat /dev/user} none)
		if(test -e /cmd/aux/vmware)
			aux/vmware
}

# query user if terminal isn't adequately configured yet
if(~ $mouseport ask){
	echo -n 'mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: '
	mouseport=`{read}
}
if(~ $#mouseport 0)
	mouseport=ps2

if(~ $vgasize ask){
	echo -n 'vgasize [1024x768x8]: '
	vgasize=`{read}
}
if(~ $#vgasize 0)
	vgasize=1024x768x8

if(~ $monitor ask){
	echo -n 'monitor is [vesa]: '
	monitor=`{read}
}
if(~ $#monitor 0)
	monitor=vesa

if(test -f /dev/mousectl){
	switch($mouseport){
	case ps2 ps2intellimouse 0 1 2
		hmi/mouse $mouseport
		ms &
		# parse vgasize into fields
		vgasize=`{echo $vgasize}
		if(! ~ $"monitor '' && ! ~ `{cat /dev/user} none) { 
			hmi/realemu
			hmi/vga -m $monitor -l $vgasize
		}
		if(~ $accupoint 1)
			pipefile -dr /cmd/aux/accupoint /dev/mouse
		rio -i /lib/riostart
	}
}

# usb listener
/arch/rc/aux/usb/usbrc

if (test -f /dev/apm)
	aux/apm

dontkill '^(ipconfig|factotum|mntgen|fossil|cs|dns|listen|reboot)$'