no excludes
[build.git] / fedora-mirror2.sh
1 #!/bin/sh
2
3 # using fedora's mirrormanager (hence report_mirror)
4 # inspired by
5 # http://www.techrepublic.com/blog/linux-and-open-source/create-a-local-fedora-mirror-system-and-get-blazing-fast-updates/
6
7 current_versions="20 21 22"
8 upstream_url=rsync://mirror2.hs-esslingen.de/fedora/linux
9
10 ###
11 fdest="/mirror/fedora"
12 # xxx not sure if useful
13 #excludes_file=/mirror/fedora/fedora-excludes.txt
14 excludes_file=/dev/null
15
16 lock=".rsync_updates.lock"
17 options="$@"
18
19 # for safety - clear lock if older than 4 hours
20 GRACE=240
21 is_old=$(find $lock -mmin +$GRACE 2> /dev/null)
22 if [ -n "$is_old" ] ; then
23     msg "$lock is older than $GRACE minutes - removing"
24     rm -f $lock
25 fi
26
27 if [ -f ${lock} ]; then
28     echo "Updates via rsync already running."
29     exit 0
30 fi
31
32 for version in $current_versions; do
33     if [ ! -d ${fdest}/releases/${version}/Everything ]; then
34         echo "Target directory ${fdest}/${releases}/${version}/ not present."
35         continue
36     fi
37     echo "Synchronizing Fedora ${version}"
38     pushd ${fdest}/releases/${version} >& /dev/null
39     rsync -avH ${upstream_url}/releases/${version}/Everything . --exclude-from=${excludes_file} ${options} \
40           --numeric-ids --delete --delete-after --delay-updates
41     popd >& /dev/null
42     echo "Synchronizing Fedora updates for version ${version}"
43     pushd ${fdest}/updates/${version} >& /dev/null
44     rsync -avH ${upstream_url}/updates/${version}/ . --exclude-from=${excludes_file} ${options} \
45           --numeric-ids --delete --delete-after --delay-updates
46     popd >& /dev/null
47 done
48
49 # report to fedora's infra
50 /usr/bin/report_mirror
51
52 #clear lock
53 /bin/rm -f ${lock}