summaryrefslogtreecommitdiff
path: root/rc/bin/termrc
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
commit2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch)
treef6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/termrc
parente463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff)
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/termrc')
-rwxr-xr-xrc/bin/termrc106
1 files changed, 106 insertions, 0 deletions
diff --git a/rc/bin/termrc b/rc/bin/termrc
new file mode 100755
index 000000000..5de208a55
--- /dev/null
+++ b/rc/bin/termrc
@@ -0,0 +1,106 @@
+#!/bin/rc
+# terminal startup
+TIMESYNCARGS=(-rLa1000000)
+NDBFILE=/lib/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 '$' Σ κ)
+ /bin/bind -a '#'^$i /dev >/dev/null >[2=1]
+
+# 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 /rc/bin/termrc.local)
+ . /rc/bin/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 = gnot # 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 '')
+ aux/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 /bin/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 [640x480x8]: '
+ vgasize=`{read}
+ if(~ $#vgasize 0)
+ vgasize=640x480x8
+}
+if(~ $monitor ask){
+ echo -n 'monitor is [xga]: '
+ monitor=`{read}
+ if(~ $#monitor 0)
+ monitor=xga
+}
+if(test -f /dev/mousectl){
+ switch($mouseport){
+ case ps2 ps2intellimouse 0 1 2
+ aux/mouse $mouseport
+ # parse vgasize into fields
+ vgasize=`{echo $vgasize}
+ if(! ~ $"monitor '' && ! ~ `{cat /dev/user} none)
+ aux/vga -l $vgasize
+ if(~ $accupoint 1)
+ pipefile -dr /bin/aux/accupoint /dev/mouse
+ }
+}
+
+usbstart
+if (test -f /dev/apm)
+ aux/apm
+
+dontkill '^(ipconfig|factotum|mntgen|fossil|cs|dns|listen|reboot)$'