From 3cc95373960c3465d7aa39c81eff8c5ba59cb87a Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Tue, 26 Jan 2016 10:26:19 +0100 Subject: Support architecture include --- bin/ftpsync | 18 ++++++++++++++++++ etc/ftpsync.conf.sample | 10 ++++++++++ 2 files changed, 28 insertions(+) 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. -- cgit v1.2.3