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 [ -n "$(rsync --help | grep no-motd)" ] && options="$options --no-motd"
62 for e in $excludelist; do
63 options="$options --exclude $e"
66 if [ -n "$verbose" ] ; then
68 echo "distro=$distroname"
69 echo "distroname=$distroname"
70 echo "distroindex=$distroindex"
72 echo rsyncurl="$rsyncurl"
73 echo "rsync options=$options"
82 [ -z "$skip_core" ] && paths="core/$distroindex/$arch/os/"
83 paths="$paths core/updates/$distroindex/$arch/ extras/$distroindex/$arch/"
87 [ -z "$skip_core" ] && paths="releases/$distroindex/Everything/$arch/os/"
88 paths="$paths updates/$distroindex/$arch/"
97 [ -z "$skip_core" ] && paths="$distroindex/os/$arch/"
98 paths="$paths $distroindex/updates/$arch/"
106 if [ "$RES" = 1 ] ; then
107 echo "$distro $distroindex currently unsupported - exiting"
109 for repopath in $paths; do
110 echo "============================== $distro -> $distroindex $repopath"
111 [ -z "$dry_run" ] && mkdir -p ${root}/${repopath}
112 command="rsync $options ${rsyncurl}/${repopath} ${root}/${repopath}"