summaryrefslogtreecommitdiffstats
path: root/bin/reprepro_mirror.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/reprepro_mirror.sh')
-rwxr-xr-xbin/reprepro_mirror.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/bin/reprepro_mirror.sh b/bin/reprepro_mirror.sh
new file mode 100755
index 0000000..b45a978
--- /dev/null
+++ b/bin/reprepro_mirror.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+set -e
+
+MODULES="${1:-packages images}"
+
+HOSTNAME="$(hostname -f)"
+DOMAIN="$(hostname -d)"
+
+Rsync ()
+{
+ SERVER="${1}"
+ MODULE="${2}"
+ DIRECTORY="${3}"
+
+ mkdir -p "${DIRECTORY}"
+ touch "${DIRECTORY}/Archive-Update-in-Progress-${HOSTNAME}"
+
+ rsync -aPHv --progress --no-motd \
+ ${SERVER}::${MODULE} \
+ --exclude dists --exclude project/trace \
+ "${DIRECTORY}"
+
+ rsync -aPHv --progress --no-motd --delete \
+ ${SERVER}::${MODULE} \
+ "${DIRECTORY}"
+
+ mkdir -p "${DIRECTORY}/project/trace"
+ echo "$(date -R)" > "${DIRECTORY}/project/trace/${HOSTNAME}"
+}
+
+for MODULE in ${MODULES}
+do
+ Rsync apt.${DOMAIN} ${MODULE} "/srv/${HOSTNAME}/${MODULE}"
+done