diff options
Diffstat (limited to 'rc/bin/replica/defs')
| -rwxr-xr-x | rc/bin/replica/defs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/rc/bin/replica/defs b/rc/bin/replica/defs new file mode 100755 index 000000000..45b36419f --- /dev/null +++ b/rc/bin/replica/defs @@ -0,0 +1,55 @@ +tmp=() + +fn fatal { + if(! ~ $#tmp 0) + rm -f $tmp + echo $* >[1=2] + exit $"* +} + +fn must { + $* || fatal $"*^': '^$status +} + +fn need { + for(i) + if(~ $$i UNCONFIGURED) + fatal $name^' does not set $'^$i +} + +opt=() +while(! ~ $#* 0 && ~ $1 -*){ + if(~ $1 -s -c){ # take one argument + opt=($opt $1) + shift + } + opt=($opt $1) + shift +} +if(~ $1 --) + shift +if(~ $#* 0) + usage +name=$1 +shift +paths=($*) + +if(! ~ $name /* ./* ../*) + name=$home/lib/replica/$name + +if(! test -x $name) + fatal no such replica $name + +cfgopt=() +applyopt=() +fn servermount { status='' } +fn clientmount { status='' } +fn serverupdate { status='' } +for (i in clientroot clientproto clientdb clientexclude serverroot serverlog serverproto) + $i=UNCONFIGURED +. $name + +if(! ~ $#serverexclude 0) + serverexclude=-x^$serverexclude +if(! ~ $#clientexclude 0) + clientexclude=-x^$clientexclude |
