X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=bin%2Fcreate_mirror;fp=bin%2Fcreate_mirror;h=6ce48604b04919403bad427cd104fef359f0380b;hb=afd01a99cf960a99b2736dedf06887a45883c49f;hp=0000000000000000000000000000000000000000;hpb=5aee756a0f6437b2fbdbf9f8abc4233917fc1842;p=deb%2Fpackages.git diff --git a/bin/create_mirror b/bin/create_mirror new file mode 100755 index 0000000..6ce4860 --- /dev/null +++ b/bin/create_mirror @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e + +topdir="$1" +[ -n "$topdir" -a -d "$topdir" ] || exit 1 +mirror="$topdir/mirror" + +mkdir -p "$mirror" + +STAMP=$(date "+%Y%m%d%H%M") +new="$mirror/$STAMP" +mkdir $new + +if lockfile -! -l 3600 -r2 -300 "$mirror/mirror.lock" +then + echo "couldn't aquire mirror.lock in due time" + exit 1; +fi + +mkdir -p "$new/cache" +chmod 777 "$new/cache" + +cd "$new" +ln -f "$topdir/config.sh" +ln -f "$topdir/README.Mirror" + +mkdir -p "$new/bin" +cd "$new/bin" +ln -f "$topdir/bin/mod_perl-startup" + +mkdir -p "$new/conf" +cd "$new/conf" +ln -f "$topdir/conf/apache.conf" + +mkdir -p "$new/cgi-bin" +cd "$new/cgi-bin" +ln -f "$topdir/cgi-bin/dispatcher.pl" + +for d in lib files templates po www +do + mkdir -p "$new/$d" + rsync -avH --link-dest "$topdir/$d" \ + --exclude '*.new' --exclude '*.sed.in' \ + --exclude '*.slices' --exclude '*~' \ + --exclude '*.lock' --exclude '*.ttc' --exclude 'logs/' \ + --exclude 'packages/*/' --exclude 'changelogs.*.dump' \ + --exclude 'changelogs.cache' --exclude 'changelogs/**/log' \ + --exclude "/auto" --exclude "/Search" --exclude "/perl" \ + --delete-excluded --delete-after \ + "$topdir/$d/" "$new/$d/" +done +LC_ALL=POSIX LANG=POSIX date -u > "$new/www/Pics/.trace" + +ln -sfT $new $mirror/current +find $mirror -mindepth 1 -maxdepth 1 -not -name "${STAMP}" -type d -print0 \ + | xargs --no-run-if-empty -0 rm -rf + +rm -f "$mirror/mirror.lock"