63 lines
1.8 KiB
Bash
Executable File
63 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# openmamba repository mirror script
|
|
# (c) 2006-2007 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
|
#
|
|
. /etc/sysconfig/openmamba-central
|
|
|
|
[ "$ftpsync" ] || exit 0
|
|
[ "$dest_ftp" ] || exit 0
|
|
|
|
ftp_sync() {
|
|
err=9
|
|
start=`date +%s`
|
|
elapsed=0
|
|
while [ $err -eq 9 ] && [ $elapsed -lt 300 ]; do
|
|
ftpsync -q -p $1 $2 ftpuser=$ftpuser ftppasswd=$ftppass timeout=20
|
|
err=$?
|
|
now=`date +%s`
|
|
elapsed=`expr $now - $start`
|
|
[ $err -gt 0 ] && echo " Error: ftpsync exited with error $err"
|
|
done
|
|
return 0
|
|
}
|
|
|
|
for rep in ${remote_reps[*]}; do
|
|
echo "==> Working on $rep remote repository"
|
|
|
|
echo " Syncyng APT database"
|
|
ftp_sync $local_ftp/$rep/base/ $dest_ftp/pub/openmamba/$rep/base
|
|
|
|
echo " Syncing log files"
|
|
for a in $local_ftp/$rep/*log; do
|
|
curl -s -T $a -u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/$rep/
|
|
done
|
|
done
|
|
|
|
for rep in ${local_reps[*]}; do
|
|
echo "==> Working on $rep local repository"
|
|
for a in ${archs[*]}; do
|
|
err=1
|
|
start=`date +%s`
|
|
elapsed=0
|
|
echo " Syncing RPMs for arch $a"
|
|
ftp_sync $local_ftp/$rep/RPMS.$a/ $dest_ftp/pub/openmamba/$rep/RPMS.$a
|
|
done
|
|
echo " Syncing APT database"
|
|
ftp_sync $local_ftp/$rep/base/ $dest_ftp/pub/openmamba/$rep/base
|
|
|
|
echo " Syncing SRPMs repository"
|
|
ftp_sync $local_ftp/$rep/SRPMS.base/ $dest_ftp/pub/openmamba/$rep/SRPMS.base
|
|
|
|
echo " Syncing logs"
|
|
for a in $local_ftp/$rep/*log; do
|
|
curl -s -T $a -u$ftpuser:$ftppass --url $dest_ftp/pub/openmamba/$rep/
|
|
done
|
|
done
|
|
|
|
echo "==> Syncing distromatic"
|
|
ftpsync -q -p $local_distromatic $dest_ftp/pub/openmamba/distromatic ftpuser=$ftpuser ftppasswd=$ftppass timeout=20
|
|
|
|
echo "==> Syncing media directory for devel repository"
|
|
ftp_sync $local_ftp/devel/media/ $dest_ftp/pub/openmamba/devel/media timeout=20
|