summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/ftpsync18
-rw-r--r--etc/ftpsync.conf.sample10
2 files changed, 28 insertions, 0 deletions
diff --git a/bin/ftpsync b/bin/ftpsync
index 71fa4ad..51cb4a3 100755
--- a/bin/ftpsync
+++ b/bin/ftpsync
@@ -470,6 +470,7 @@ EXCLUDE="${EXCLUDE} --exclude=.~tmp~/"
SOURCE_EXCLUDE=${SOURCE_EXCLUDE:-""}
SOURCE_EXCLUDE_EXPLICIT=
ARCH_EXCLUDE=${ARCH_EXCLUDE:-""}
+ARCH_INCLUDE=${ARCH_INCLUDE:-""}
# Exclude architectures defined in $ARCH_EXCLUDE
for ARCH in ${ARCH_EXCLUDE}; do
@@ -479,6 +480,23 @@ for ARCH in ${ARCH_EXCLUDE}; do
fi
done
+if [[ ${ARCH_INCLUDE} ]]; then
+ ARCH_INCLUDE_ALL=
+ SOURCE_EXCLUDE_EXPLICIT=1
+ for ARCH in ${ARCH_INCLUDE}; do
+ EXCLUDE="${EXCLUDE} --include=binary-${ARCH}/ --include=installer-${ARCH}/ --include=Contents-${ARCH}.gz --include=Contents-udeb-${ARCH}.gz --include=Contents-${ARCH}.diff/ --include=arch-${ARCH}.files --include=arch-${ARCH}.list.gz --include=*_${ARCH}.deb --include=*_${ARCH}.udeb --include=*_${ARCH}.changes"
+ if [[ ${ARCH} = source ]]; then
+ SOURCE_EXCLUDE_EXPLICIT=
+ else
+ ARCH_INCLUDE_ALL=1
+ fi
+ done
+ if [[ ${ARCH_INCLUDE_ALL} ]]; then
+ EXCLUDE="${EXCLUDE} --include=binary-all/ --include=installer-all/ --include=Contents-all.gz --include=Contents-udeb-all.gz --include=Contents-all.diff/ --include=arch-all.files --include=arch-all.list.gz --include=*_all.deb --include=*_all.udeb --include=*_all.changes"
+ fi
+ EXCLUDE="${EXCLUDE} --exclude=binary-*/ --exclude=installer-*/ --exclude=Contents-*.gz --exclude=Contents-udeb-*.gz --exclude=Contents-*.diff/ --exclude=arch-*.files --exclude=arch-*.list.gz --exclude=*.deb --exclude=*.udeb --exclude=*.changes"
+fi
+
if [[ ${SOURCE_EXCLUDE_EXPLICIT} ]] && [[ -z ${SOURCE_EXCLUDE} ]]; then
SOURCE_EXCLUDE=" --exclude=source/ --exclude=*.tar.gz --exclude=*.diff.gz --exclude=*.tar.bz2 --exclude=*.tar.xz --exclude=*.diff.bz2 --exclude=*.dsc "
# Over-ride the exclude=*.tar.gz above - there are some
diff --git a/etc/ftpsync.conf.sample b/etc/ftpsync.conf.sample
index bcefbb6..1524e72 100644
--- a/etc/ftpsync.conf.sample
+++ b/etc/ftpsync.conf.sample
@@ -71,6 +71,16 @@
## Notice: source shall not be excluded on an official mirror
#ARCH_EXCLUDE=""
+## If you do want to include only a set of architectures, this is for you.
+## Use as space seperated list.
+## Possible values are:
+## alpha amd64 arm arm64 armel armhf hppa hurd-i386 i386 ia64 kfreebsd-amd64
+## kfreebsd-i386 m68k mipsel mips powerpc ppc64el s390 s390x sh sparc source
+## eg. ARCH_INCLUDE="amd64 i386 source"
+## An unset value will mirror all architectures (default!)
+## Notice: source shall be included on an official mirror
+#ARCH_INCLUDE=""
+
## Do we have leaf mirror to signal we are done and they should sync?
## If so set it to true and make sure you configure runmirrors.mirrors
## and runmirrors.conf for your need.