xref: /plan9/rc/bin/C (revision b751ae26be1094fda8622607119a26860f1833ab)
1#!/bin/rc
2# C system - connect to system's console
3rfork en
4oflag=()
5opt=-r
6while(~ $1 -*)
7	switch($1){
8	case -r
9		shift
10		opt=''
11	case -O -o
12		oflag=-O
13		shift
14	case *
15		opt=-r
16		shift
17	}
18
19switch($1){
20case ella
21	exec C office0
22	exit
23case erika
24	exec C office1
25	exit
26case *
27	# look for server in /lib/ndb
28	server=`{ndb/query sys $1 console}
29	switch($server){
30	case ''
31		echo C: unknown console server for $1
32		exit 1
33	}
34}
35
36# can't cpu to old servers any more
37switch($server){
38case dinar bones
39	ssh $server C $1
40	exit 0
41}
42
43if(! test -e /mnt/consoles/$1){
44	switch($sysname){
45	case $server
46		mount /srv/consoles /mnt/consoles
47	case *
48		import $oflag $server /mnt/consoles
49	}
50}
51
52if(! test -e /mnt/consoles/$1 && test -e /srv/consoles)
53	mount /srv/consoles /mnt/consoles
54
55if(! test -e /mnt/consoles/$1){
56	echo console not found
57	exit 'console not found'
58}
59
60if (test -w /dev/label) {
61	olab=`{cat /dev/label}
62	label $1
63}
64con -l $opt /mnt/consoles/$1
65if (test -w /dev/label)
66	label $olab
67