#!/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 ''
|