#!/bin/bash
# this can help you create/update your fedora mirror
-# $Id$
COMMAND=$(basename $0)
LOGDIR=/var/log/fedora-mirroring
dry_run=
verbose=
log=
-skip_core=true
+skip_core=
root=/mirror/
-hozac_url=http://rpm.hozac.com/dhozac/centos/5/vserver
-# Daniel mentions rsync://rpm.hozac.com/dhozac/centos/5/vserver/
+dhozac_url=rsync://rpm.hozac.com/dhozac/centos/
us_fedora_url=rsync://mirrors.kernel.org/fedora
us_centos_url=rsync://mirrors.rit.edu/centos
# ircam's fedora8 repo has been turned off
#eu_fedora_url=rsync://mirrors.ircam.fr/fedora-linux
-eu_fedora_url=rsync://mirror.ovh.net/download.fedora.redhat.com/linux
+#eu_fedora_url=rsync://mirror.ovh.net/download.fedora.redhat.com/linux
+eu_fedora_url=rsync://ftp-stud.hs-esslingen.de/fedora/linux
eu_centos_url=rsync://mirrors.ircam.fr/CentOS
eu_epel_url=rsync://mirrors.ircam.fr/fedora-epel
+pl_fedora_url=$eu_fedora_url
+pl_centos_url=rsync://ftp.tpnet.pl/centos
+pl_epel_url=rsync://ftp.icm.edu.pl/pub/Linux/fedora/linux/epel
+
jp_fedora_url="jp_fedora_url-needs-to-be-defined"
jp_centos_url="jp_centos_url-needs-to-be-defined"
jp_epel_url="jp_epel_url-needs-to-be-defined"
-default_distroname="centos5"
-all_distronames="f10 f11 centos5.3 epel5"
+default_distroname="centos5.6"
+all_distronames="f14 f16 f17"
default_arch="i386"
all_archs="i386 x86_64"
case $(hostname) in
- *.fr|*.de|*.uk)
+ blitz*|*.fr|*.de|*.uk)
fedora_url=$eu_fedora_url ; centos_url=$eu_centos_url ; epel_url=$eu_epel_url ;;
+ *.pl)
+ fedora_url=$pl_fedora_url ; centos_url=$pl_centos_url ; epel_url=$pl_epel_url ;;
*.jp)
fedora_url=$jp_fedora_url ; centos_url=$jp_centos_url ; epel_url=$jp_epel_url ;;
*)
distroname=$1; shift
arch=$1; shift
- LFTP=0
-
distroname=$(echo $distroname | tr '[A-Z]' '[a-z]')
case $distroname in
fc*[1-6])
distro="CentOS"
rsyncurl=$centos_url
;;
- epel5)
- distroindex=5
+ epel[5-6])
+ distroindex=$(echo $distroname | sed -e "s,epel,,g")
distro=epel
rsyncurl=$epel_url
;;
- hozac)
+ dhozac)
distroindex=5
- distro="hozac"
- rsyncurl=$hozac_url
+ distro="dhozac"
+ rsyncurl=$dhozac_url
;;
*)
echo "WARNING -- Unknown distribution $distroname -- skipped"
excludelist="debug/ iso/ ppc/ source/"
options="--archive --compress --delete --delete-excluded $dry_run $verbose"
- lftp_options="--delete $dry_run $verbose"
[ -n "$(rsync --help | grep no-motd)" ] && options="$options --no-motd"
for e in $excludelist; do
options="$options --exclude $e"
- lftp_options="$lftp_options --exclude $e"
done
echo ">>>>>>>>>>>>>>>>>>>> root=$root distroname=$distroname arch=$arch rsyncurl=$rsyncurl"
epel*)
case $distroindex in
- 5)
+ 5|6)
paths="$paths $distroindex/$arch/"
RES=0
;;
localpath=epel
;;
- hozac*)
+ dhozac*)
case $distroindex in
5)
# leave off trailing '/'
- paths="$paths $arch"
+ paths="$paths $distroindex/vserver/$arch"
RES=0
- LFTP=1
;;
esac
localpath=dhozac
for repopath in $paths; do
echo "===== $distro -> $distroindex $repopath"
[ -z "$dry_run" ] && mkdir -p ${root}/${localpath}/${repopath}
- if [ "$LFTP" = 1 ]; then
- command="lftp -c mirror $lftp_options ${rsyncurl}/${repopath} ${root}/${localpath}/${repopath}"
- else
- command="rsync $options ${rsyncurl}/${repopath} ${root}/${localpath}/${repopath}"
- fi
+ command="rsync $options ${rsyncurl}/${repopath} ${root}/${localpath}/${repopath}"
echo $command
$command
done
echo " -n : dry run"
echo " -v : verbose"
echo " -l : turns on autologging in $LOGDIR"
- echo " -c : skips core repository (default)"
- echo " -C : force syncing core repository"
+ echo " -c : skips core repository"
+ echo " -C : force syncing core repository (default)"
echo " -r root (default is $root)"
echo " -u rsyncurl for fedora (default is $fedora_url)"
echo " -U rsyncurl for centos (default is $centos_url)"
h|*) usage ;;
esac
done
+ shift $(($OPTIND-1))
+ [[ -n "$@" ]] && usage
[ -z "$distronames" ] && distronames=$default_distroname
[ -z "$archs" ] && archs=$default_arch