xref: /plan9-contrib/rc/bin/replica/defs (revision 2cca75a1b2b8c6083390679d69d5c50cf66d9a01)
19a747e4fSDavid du Colombiertmp=()
29a747e4fSDavid du Colombier
39a747e4fSDavid du Colombierfn fatal {
49a747e4fSDavid du Colombier	if(! ~ $#tmp 0)
59a747e4fSDavid du Colombier		rm -f $tmp
69a747e4fSDavid du Colombier	echo $* >[1=2]
79a747e4fSDavid du Colombier	exit $"*
89a747e4fSDavid du Colombier}
99a747e4fSDavid du Colombier
109a747e4fSDavid du Colombierfn must {
119a747e4fSDavid du Colombier	$* || fatal $"*^': '^$status
129a747e4fSDavid du Colombier}
139a747e4fSDavid du Colombier
149a747e4fSDavid du Colombierfn need {
159a747e4fSDavid du Colombier	for(i)
169a747e4fSDavid du Colombier		if(~ $$i UNCONFIGURED)
179a747e4fSDavid du Colombier			fatal $name^' does not set $'^$i
189a747e4fSDavid du Colombier}
199a747e4fSDavid du Colombier
209a747e4fSDavid du Colombieropt=()
219a747e4fSDavid du Colombierwhile(! ~ $#* 0 && ~ $1 -*){
22*2cca75a1SDavid du Colombier	if(~ $1 -s -c){	# take one argument
23*2cca75a1SDavid du Colombier		opt=($opt $1)
24*2cca75a1SDavid du Colombier		shift
25*2cca75a1SDavid du Colombier	}
269a747e4fSDavid du Colombier	opt=($opt $1)
279a747e4fSDavid du Colombier	shift
289a747e4fSDavid du Colombier}
299a747e4fSDavid du Colombierif(~ $1 --)
309a747e4fSDavid du Colombier	shift
319a747e4fSDavid du Colombierif(~ $#* 0)
329a747e4fSDavid du Colombier	usage
339a747e4fSDavid du Colombiername=$1
349a747e4fSDavid du Colombiershift
359a747e4fSDavid du Colombierpaths=($*)
369a747e4fSDavid du Colombier
379a747e4fSDavid du Colombierif(! ~ $name /* ./* ../*)
389a747e4fSDavid du Colombier	name=$home/lib/replica/$name
399a747e4fSDavid du Colombier
409a747e4fSDavid du Colombierif(! test -x $name)
419a747e4fSDavid du Colombier	fatal no such replica $name
429a747e4fSDavid du Colombier
439a747e4fSDavid du Colombiercfgopt=()
449a747e4fSDavid du Colombierapplyopt=()
459a747e4fSDavid du Colombierfn servermount { status='' }
469a747e4fSDavid du Colombierfn clientmount { status='' }
479a747e4fSDavid du Colombierfn serverupdate { status='' }
489a747e4fSDavid du Colombierfor (i in clientroot clientproto clientdb clientexclude serverroot serverlog serverproto)
499a747e4fSDavid du Colombier	$i=UNCONFIGURED
509a747e4fSDavid du Colombier. $name
519a747e4fSDavid du Colombier
529a747e4fSDavid du Colombierif(! ~ $#serverexclude 0)
539a747e4fSDavid du Colombier	serverexclude=-x^$serverexclude
549a747e4fSDavid du Colombierif(! ~ $#clientexclude 0)
559a747e4fSDavid du Colombier	clientexclude=-x^$clientexclude
56