From 5f0970a25815c17d06c0ab80ae683ceb962ccaef Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Tue, 26 Jan 2016 10:21:07 +0100 Subject: Factor out source exclude specification --- bin/ftpsync | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'bin/ftpsync') diff --git a/bin/ftpsync b/bin/ftpsync index e8aa021..71fa4ad 100755 --- a/bin/ftpsync +++ b/bin/ftpsync @@ -468,21 +468,25 @@ STATS_TOTAL_RSYNC_TIME2=0 EXCLUDE="${EXCLUDE} --exclude=.~tmp~/" SOURCE_EXCLUDE=${SOURCE_EXCLUDE:-""} +SOURCE_EXCLUDE_EXPLICIT= ARCH_EXCLUDE=${ARCH_EXCLUDE:-""} + # Exclude architectures defined in $ARCH_EXCLUDE for ARCH in ${ARCH_EXCLUDE}; do EXCLUDE="${EXCLUDE} --exclude=binary-${ARCH}/ --exclude=installer-${ARCH}/ --exclude=Contents-${ARCH}.gz --exclude=Contents-udeb-${ARCH}.gz --exclude=Contents-${ARCH}.diff/ --exclude=arch-${ARCH}.files --exclude=arch-${ARCH}.list.gz --exclude=*_${ARCH}.deb --exclude=*_${ARCH}.udeb --exclude=*_${ARCH}.changes" if [[ ${ARCH} = source ]]; then - if [[ -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 - # tar.gz files in the archive that are *not* source - # files... - SOURCE_EXCLUDE="$SOURCE_EXCLUDE --include=debian-cd_info.tar.gz --include=debian-faq.en.html.tar.gz --include=netboot.tar.gz --include=nfsroot.tar.gz --include=hd-media.tar.gz --include=dedication*.tar.gz" - fi + SOURCE_EXCLUDE_EXPLICIT=1 fi done +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 + # tar.gz files in the archive that are *not* source + # files... + SOURCE_EXCLUDE="$SOURCE_EXCLUDE --include=debian-cd_info.tar.gz --include=debian-faq.en.html.tar.gz --include=netboot.tar.gz --include=nfsroot.tar.gz --include=hd-media.tar.gz --include=dedication*.tar.gz" +fi + # Hooks HOOK1=${HOOK1:-""} HOOK2=${HOOK2:-""} -- cgit v1.2.3 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 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'bin/ftpsync') 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 -- cgit v1.2.3 From ffb77d0f04ae06ffbc477a147a4239c9aeebbdc4 Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Tue, 26 Jan 2016 11:11:57 +0100 Subject: Factor out arch exclude and include into function --- bin/ftpsync | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'bin/ftpsync') diff --git a/bin/ftpsync b/bin/ftpsync index 51cb4a3..fcd11b3 100755 --- a/bin/ftpsync +++ b/bin/ftpsync @@ -255,6 +255,19 @@ tracefile() { esac } + +arch_imexclude() { + local param="$1" arch="$2" + EXCLUDE="${EXCLUDE} --${param}=binary-${arch}/ --${param}=installer-${arch}/ --${param}=Contents-${arch}.gz --${param}=Contents-udeb-${arch}.gz --${param}=Contents-${arch}.diff/ --${param}=arch-${arch}.files --${param}=arch-${arch}.list.gz --${param}=*_${arch}.deb --${param}=*_${arch}.udeb --${param}=*_${arch}.changes" +} + +arch_exclude() { + arch_imexclude exclude "$1" +} + +arch_include() { + arch_imexclude include "$1" +} ######################################################################## ######################################################################## @@ -474,7 +487,7 @@ ARCH_INCLUDE=${ARCH_INCLUDE:-""} # Exclude architectures defined in $ARCH_EXCLUDE for ARCH in ${ARCH_EXCLUDE}; do - EXCLUDE="${EXCLUDE} --exclude=binary-${ARCH}/ --exclude=installer-${ARCH}/ --exclude=Contents-${ARCH}.gz --exclude=Contents-udeb-${ARCH}.gz --exclude=Contents-${ARCH}.diff/ --exclude=arch-${ARCH}.files --exclude=arch-${ARCH}.list.gz --exclude=*_${ARCH}.deb --exclude=*_${ARCH}.udeb --exclude=*_${ARCH}.changes" + arch_exclude ${ARCH} if [[ ${ARCH} = source ]]; then SOURCE_EXCLUDE_EXPLICIT=1 fi @@ -484,7 +497,7 @@ 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" + arch_include ${ARCH} if [[ ${ARCH} = source ]]; then SOURCE_EXCLUDE_EXPLICIT= else @@ -492,9 +505,9 @@ if [[ ${ARCH_INCLUDE} ]]; then 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" + arch_include all 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" + arch_exclude '*' fi if [[ ${SOURCE_EXCLUDE_EXPLICIT} ]] && [[ -z ${SOURCE_EXCLUDE} ]]; then -- cgit v1.2.3 From 0cbcb91ccf96631ff01c605c11e2b14c75dc446c Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Wed, 10 Feb 2016 09:12:45 +0100 Subject: Correctly generate architecture list in case for arch include --- bin/ftpsync | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'bin/ftpsync') diff --git a/bin/ftpsync b/bin/ftpsync index fcd11b3..18e8e01 100755 --- a/bin/ftpsync +++ b/bin/ftpsync @@ -202,13 +202,22 @@ tracefile() { if [[ full = ${EXTENDEDTRACE} ]]; then GLOBALARCHLIST="source amd64 arm64 armel armhf hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64el s390 s390x sparc" - AEXCLUDE="^${ARCH_EXCLUDE// /\$|^}$" ARCHLIST="" - for ARCH in ${GLOBALARCHLIST}; do - if ! [[ ${ARCH} =~ ${AEXCLUDE} ]]; then - ARCHLIST="${ARCHLIST} ${ARCH}" - fi - done + if [[ ${ARCH_INCLUDE} ]]; then + AINCLUDE="^${ARCH_INCLUDE// /\$|^}$" + for ARCH in ${GLOBALARCHLIST}; do + if [[ ${ARCH} =~ ${AINCLUDE} ]]; then + ARCHLIST="${ARCHLIST} ${ARCH}" + fi + done + else + AEXCLUDE="^${ARCH_EXCLUDE// /\$|^}$" + for ARCH in ${GLOBALARCHLIST}; do + if ! [[ ${ARCH} =~ ${AEXCLUDE} ]]; then + ARCHLIST="${ARCHLIST} ${ARCH}" + fi + done + fi out="GUESSED:{${ARCHLIST}}" echo "Architectures: ${out}" echo "Upstream-mirror: ${RSYNC_HOST}" -- cgit v1.2.3