#!/bin/rc fn usage { echo 'usage: repl/sync [-lr12n] repl1 repl2 [dir...]' >[1=2] exit usage } doscan=yes opt=() while(! ~ $#* 0 && ~ $1 -*){ switch($1){ case -N doscan=no case * opt=($opt $1) } shift } if(~ $1 --) shift if (~ $#1 0 || ~ $#2 0) usage if (test -x $1) . $1 if not if (test -x $home/lib/repl/$1) . $home/lib/repl/$1 if not { if (test -x /lib/repl/$1) . /lib/repl/$1 if not { echo 'no such replica: '^$1 >[1=2] exit bad1 } } db1=$db dir1=$dir if (test -x $2) . $2 if not if (test -x $home/lib/repl/$2) . $home/lib/repl/$2 if not { if (test -x /lib/repl/$2) . /lib/repl/$2 if not { echo 'no such replica: '^$2 >[1=2] exit bad2 } } db2=$db dir2=$dir if (~ $doscan yes){ echo scanning $1 if (! repl/scandb $excl $dir1 $db1){ echo scan failed for $1 >[1=2] exit scan1 } echo scanning $2 if (! repl/scandb $excl $dir2 $db2){ echo scan failed for $2 >[1=2] exit scan2 } } shift ; shift echo syncing repl/syncdb -v $opt $dir1 $dir2 $db1 $db2 $* exit ''