X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-fedora-mirror.sh;h=1980d0ad9d5642b02c84261a7b5ae7dbfd8dd3e0;hb=789d5c09880a2583858c4fca2867c8f1adf9ba7f;hp=5ac8851f3fe60c2346ef7315a07d85c134d76beb;hpb=744f64509b88db1db138b7e3bfb1e5765734a474;p=build.git diff --git a/vbuild-fedora-mirror.sh b/vbuild-fedora-mirror.sh index 5ac8851f..1980d0ad 100755 --- a/vbuild-fedora-mirror.sh +++ b/vbuild-fedora-mirror.sh @@ -1,6 +1,5 @@ #!/bin/bash # this can help you create/update your fedora mirror -# $Id$ COMMAND=$(basename $0) LOGDIR=/var/log/fedora-mirroring @@ -14,8 +13,7 @@ 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 @@ -23,22 +21,25 @@ us_epel_url=rsync://rsync.gtlib.gatech.edu/fedora-epel # 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 -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" +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 -default_distroname="centos5" -all_distronames="f8 f10 f11 centos5.2 centos5.3 epel5" +default_distroname="f16" +all_distronames="f16 f18" 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 ;; *) @@ -49,8 +50,6 @@ function mirror_distro_arch () { distroname=$1; shift arch=$1; shift - LFTP=0 - distroname=$(echo $distroname | tr '[A-Z]' '[a-z]') case $distroname in fc*[1-6]) @@ -68,15 +67,15 @@ function mirror_distro_arch () { 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" @@ -86,11 +85,9 @@ function mirror_distro_arch () { 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" @@ -132,7 +129,7 @@ function mirror_distro_arch () { epel*) case $distroindex in - 5) + 5|6) paths="$paths $distroindex/$arch/" RES=0 ;; @@ -140,13 +137,12 @@ function mirror_distro_arch () { 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 @@ -160,11 +156,7 @@ function mirror_distro_arch () { 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 @@ -184,13 +176,13 @@ function usage () { echo " -v : verbose" echo " -l : turns on autologging in $LOGDIR" 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)" echo " -E rsyncurl for epel (default is $epel_url)" echo " -s : uses standard (US) mirrors $us_fedora_url $us_centos_url $us_epel_url" echo " -e : uses European mirrors $eu_fedora_url $eu_centos_url $eu_epel_url" - echo " -j : uses Japanese mirrors $jp_fedora_url $jp_centos_url $jp_epel_url" echo " -f distroname - use vserver convention, e.g. f8 or centos5" echo " -F : for distroname in $all_distronames" echo " -a arch - use yum convention" @@ -211,19 +203,19 @@ function run () { function main () { distronames="" archs="" - while getopts "nvlcr:u:U:E:sejf:Fa:Ah" opt ; do + while getopts "nvlcCr:u:U:E:sef:Fa:Ah" opt ; do case $opt in n) dry_run=--dry-run ;; v) verbose=--verbose ;; l) log=true ;; c) skip_core=true ;; + C) skip_core= ;; r) root=$OPTARG ;; u) fedora_url=$OPTARG ;; U) centos_url=$OPTARG ;; E) epel_url=$OPTARG ;; s) fedora_url=$us_fedora_url ; centos_url=$us_centos_url ; epel_url=$us_epel_url;; e) fedora_url=$eu_fedora_url ; centos_url=$eu_centos_url ; epel_url=$eu_epel_url ;; - j) fedora_url=$jp_fedora_url ; centos_url=$jp_centos_url ; epel_url=$jp_epel_url ;; f) distronames="$distronames $OPTARG" ;; F) distronames="$distronames $all_distronames" ;; a) archs="$archs $OPTARG" ;; @@ -231,6 +223,8 @@ function main () { h|*) usage ;; esac done + shift $(($OPTIND-1)) + [[ -n "$@" ]] && usage [ -z "$distronames" ] && distronames=$default_distroname [ -z "$archs" ] && archs=$default_arch