2 # this can help you create/update your fedora mirror
10 root=/data/fedora/linux
11 rsyncurl=rsync://mirrors.kernel.org/fedora
17 echo "Usage: $COMMAND [-n] [-v] [-c] [-r root] [-u rsyncurl] [-f distroname] [-a arch]"
18 echo "Defaults to -r $root -u $rsyncurl -f $distroname -a $arch"
19 echo "Use vserver conventions for distroname, e.g. fc6 and f7"
23 echo " -c : skips core repository"
27 while getopts "nvcr:u:f:a:h" opt ; do
29 n) dry_run=--dry-run ;;
30 v) verbose=--verbose ;;
33 u) rsyncurl=$OPTARG ;;
34 f) distroname=$OPTARG ;;
42 distroindex=$(echo $distroname | sed -e "s,fc,,g")
46 distroindex=$(echo $distroname | sed -e "s,f,,g")
50 distroindex=$(echo $distroname | sed -e "s,centos,,g")
54 echo "Unknown redhat distribution $distroname - exiting"
59 excludelist="debug/ iso/ ppc/ source/"
60 options="--archive --compress --delete --delete-excluded $dry_run $verbose"
61 for e in $excludelist; do
62 options="$options --exclude $e"
65 if [ -n "$verbose" ] ; then
67 echo "distro=$distroname"
68 echo "distroname=$distroname"
69 echo "distroindex=$distroindex"
71 echo rsyncurl="$rsyncurl"
72 echo "rsync options=$options"
81 [ -z "$skip_core" ] && paths="core/$distroindex/$arch/os/"
82 paths="$paths core/updates/$distroindex/$arch/ extras/$distroindex/$arch/"
86 [ -z "$skip_core" ] && paths="releases/$distroindex/Everything/$arch/os/"
87 paths="$paths updates/$distroindex/$arch/"
96 [ -z "$skip_core" ] && paths="$distroindex/os/$arch/"
97 paths="$paths $distroindex/updates/$arch/"
105 if [ "$RES" = 1 ] ; then
106 echo "$distro $distroindex currently unsupported - exiting"
108 for repopath in $paths; do
109 echo "============================== $distro -> $distroindex $repopath"
110 [ -z "$dry_run" ] && mkdir -p ${root}/${repopath}
111 command="rsync $options ${rsyncurl}/${repopath} ${root}/${repopath}"