]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/termrc
do not kill paqfs/9660srv root fileservers
[plan9front.git] / rc / bin / termrc
1 #!/bin/rc
2 # terminal startup
3 TIMESYNCARGS=(-rLa1000000)
4
5 mntgen -s slashn && chmod 666 /srv/slashn
6
7 # bind all likely devices
8 for(i in S f k t m i v L P u U A '$' Σ κ)
9         bind -a '#'^$i /dev >/dev/null >[2=1]
10 rm -f /env/i
11
12 mount -qb /srv/cons /dev
13
14 # usb listener
15 nusbrc
16
17 # set up any partitions
18 diskparts
19
20 # start up local swapping
21 disk=`{ls /dev/sd*/swap >[2]/dev/null}
22 if (! ~ $#disk 0)
23         swap $disk(1) >/dev/null >[2=1]
24 rm -f /env/disk
25
26 # cs sets sysname
27 ndb/cs
28 sysname=`{cat /dev/sysname}
29 if(~ $#sysname 0 || ~ $sysname ''){
30         sysname=cirno                   # default
31         echo -n $sysname >/dev/sysname
32 }
33
34 # parallelism for mk
35 NPROC = `{wc -l </dev/sysstat}
36
37 # machine specific startup (e.g., for devices not probed)
38 if(test -e /cfg/$sysname/termrc)
39         . /cfg/$sysname/termrc
40
41 # automatic ip address setup
42 if(! grep u /net/ipselftab | grep -sv 127.0.0.1){
43         ether=`{ndb/query sys $sysname ether}
44         if(~ $#ether 1){
45                 # try /lib/ndb first, then do dhcp
46                 ip/ipconfig -N >[2]/dev/null || ip/ipconfig
47         }
48         rm -f /env/ether
49 }
50
51 if(! test -e /srv/dns)
52         ndb/dns -r
53
54 if(! ~ $terminal *vx32*){
55         # start timesync if it isn't running and we weren't told not to
56         if(! ps|grep -s timesync)
57                 if(! ~ $TIMESYNCARGS '')
58                         aux/timesync $TIMESYNCARGS
59 }
60
61 fn ask {
62         if(~ $"$1 ask){
63                 echo -n $1
64                 echo -n $2
65                 echo -n ' ['
66                 echo -n $3
67                 echo -n '] '
68                 $1=`{read}
69                 if(~ $"$1 '!rc'){
70                         rc -i
71                         $1=ask
72                 }
73                 if(~ $#$1 0)
74                         $1=$3
75                 ask $*
76         }
77 }
78
79 ask vgasize ' is (text, 640x480x8, 1024x768x16, ...)' 1024x768x16
80 if(! ~ $"vgasize '' text none){
81         ask monitor ' is (vesa, xga, lcd, ...)' vesa
82         if(! ~ $"monitor ''){
83                 if(test -f /dev/mousectl)
84                         ask mouseport ' is (ps2, ps2intellimouse, 0, 1, 2)' ps2
85                 if not
86                         mouseport=none
87                 @{
88                         rfork n
89                         if(~ $monitor vesa)
90                                 aux/realemu
91                         aux/vga -l $vgasize
92                 }
93                 switch($mouseport){
94                 case ps2 ps2intellimouse 0 1 2
95                         aux/mouse $mouseport
96                         if(~ $accupoint 1)
97                                 pipefile -dr /bin/aux/accupoint /dev/mouse
98                 }
99         }
100 }
101 rm -f '/env/fn#ask'
102
103 if(test -f /dev/apm)
104         aux/apm
105
106 dontkill '^(ipconfig|factotum|mntgen|kfs|cwfs.*|9660srv|paqfs|cs|dns|listen|reboot|usbd|disk)$'