1*ca7c7758SDavid du Colombier#!/bin/rc 2*ca7c7758SDavid du Colombier 3*ca7c7758SDavid du Colombierif(~ $fscons '') 4*ca7c7758SDavid du Colombier fscons=fscons 5*ca7c7758SDavid du Colombierif(~ $replica '') 6*ca7c7758SDavid du Colombier replica=replica 7*ca7c7758SDavid du Colombier 8*ca7c7758SDavid du Colombiers=/n/dist/dist/replica 9*ca7c7758SDavid du Colombierserverroot=/n/dist 10*ca7c7758SDavid du Colombierserverlog=$s/plan9binary.log 11*ca7c7758SDavid du Colombierserverproto=$s/plan9binary.proto 12*ca7c7758SDavid du Colombierfn servermount { 13*ca7c7758SDavid du Colombier 9fs sources 14*ca7c7758SDavid du Colombier bind /n/sources/plan9 /n/dist 15*ca7c7758SDavid du Colombier} 16*ca7c7758SDavid du Colombierfn serverupdate { status='' } 17*ca7c7758SDavid du Colombier 18*ca7c7758SDavid du Colombierif ( ! test -e /srv/boot && ! test -e /srv/kfs ) { 19*ca7c7758SDavid du Colombier echo 'error: neither /srv/boot nor /srv/kfs present; make sure you are running on the file server' 20*ca7c7758SDavid du Colombier exit '/srv/boot or /srv/kfs not present' 21*ca7c7758SDavid du Colombier} 22*ca7c7758SDavid du Colombier 23*ca7c7758SDavid du Colombierif (test -e /srv/$fscons) { 24*ca7c7758SDavid du Colombier if ( ! test -w /srv/$fscons ) { 25*ca7c7758SDavid du Colombier echo 'error: no write access to /srv/'^$fscons^', make sure you are the host owner' 26*ca7c7758SDavid du Colombier exit 'no write access to /srv/fscons' 27*ca7c7758SDavid du Colombier } 28*ca7c7758SDavid du Colombier 29*ca7c7758SDavid du Colombier fn clientmount { 30*ca7c7758SDavid du Colombier if(! test -e /srv/$replica){ 31*ca7c7758SDavid du Colombier echo 'srv -AWP '^$replica >>/srv/$fscons 32*ca7c7758SDavid du Colombier sleep 5 33*ca7c7758SDavid du Colombier } 34*ca7c7758SDavid du Colombier mount -c /srv/$replica /n/boot 35*ca7c7758SDavid du Colombier } 36*ca7c7758SDavid du Colombier c=/n/boot/dist/replica 37*ca7c7758SDavid du Colombier clientroot=/n/boot 38*ca7c7758SDavid du Colombier} 39*ca7c7758SDavid du Colombierif not { 40*ca7c7758SDavid du Colombier fn clientmount { 9fs kfs } 41*ca7c7758SDavid du Colombier c=/n/kfs/dist/replica 42*ca7c7758SDavid du Colombier clientroot=/n/kfs 43*ca7c7758SDavid du Colombier} 44*ca7c7758SDavid du Colombier 45*ca7c7758SDavid du Colombierclientdb=$c/client/plan9binary.db 46*ca7c7758SDavid du Colombierclientexclude=(dist/replica/client) 47*ca7c7758SDavid du Colombierclientlog=$c/client/plan9binary.log 48*ca7c7758SDavid du Colombierclientproto=$c/plan9binary.proto 49*ca7c7758SDavid du Colombier 50*ca7c7758SDavid du Colombierapplyopt=(-u -T$c/client/plan9binary.time) 51