#!/bin/sh set -e case "$(basename ${0})" in p*) MODE="progress-linux" ;; b*) MODE="bfh" ;; esac CURDIR="${PWD}" HOST="$(hostname -f)" UPLOAD="/srv/${HOST}/upload" for ARCHITECTURE in amd64 arm64 i386 all do if ! ls ${UPLOAD}/*_${ARCHITECTURE}.changes > /dev/null 2>&1 then continue fi CHANGES="$(ls ${UPLOAD}/*_${ARCHITECTURE}.changes | sort -V)" for CHANGE in ${CHANGES} do FILES="$(sed -e '1,/^Files:$/ d' ${CHANGE} | sed -e '/^[0-1a-zA-Z]/,$d' | awk '{ print $5 }')" CONTINUE="false" for FILE in ${FILES} do if [ ! -e "${UPLOAD}/${FILE}" ] then CONTINUE="true" break fi done case "${CONTINUE}" in true) echo "$(basename ${CHANGE}): incomplete upload, ${FILE} is missing." continue ;; esac PACKAGE="$(basename ${CHANGE} .changes | awk -F_ '{ print $1 }')" if [ "$(basename ${PWD})" != "${PACKAGE}" ] then mkdir -p "${PACKAGE}" cd "${PACKAGE}" fi VERSION="$(grep -m1 '^Version: ' ${CHANGE} | awk '{ print $2 }')" SOURCE_VERSION="$(echo ${VERSION} | awk -F: '{ print $2 }')" SOURCE_VERSION="${SOURCE_VERSION:-${VERSION}}" UPSTREAM_VERSION="$(echo ${SOURCE_VERSION} | awk -F- '{ $NF=""; print $0 }' | sed -e 's| |-|g' -e 's|-$||')" mkdir "${VERSION}_${ARCHITECTURE}" cd "${VERSION}_${ARCHITECTURE}" for FILE in ${FILES} ${CHANGE} do mv "${UPLOAD}/$(basename ${FILE})" . done if ls *_${ARCHITECTURE}.buildinfo > /dev/null 2>&1 then # FIXING buildinfo file sed -i -e '/^ DEB_BUILD_OPTIONS="/d' \ -e 's|^ LANG="en_US.UTF-8"| LANG="C.UTF-8"|' \ *_${ARCHITECTURE}.buildinfo fi reprepro_fix-changes.sh *_${ARCHITECTURE}.changes case "${MODE}" in progress-linux) psign.sh ;; bfh) bsign.sh ;; esac cd .. rm -f current_${ARCHITECTURE} ln -s "${VERSION}_${ARCHITECTURE}" current_${ARCHITECTURE} cd "${CURDIR}" done done if ls ${UPLOAD}/*.dsc > /dev/null 2>&1 then DSCs="$(ls ${UPLOAD}/*.dsc | sort -V)" for DSC in ${DSCs} do if [ ! -e "${DSC}" ] then break fi FILES="$(sed -e '1,/^Files:$/ d' ${DSC} | sed -e '/^[0-1a-zA-Z]/,$d' | awk '{ print $3 }')" CONTINUE="false" for FILE in ${FILES} do if [ ! -e "${UPLOAD}/${FILE}" ] then CONTINUE="true" break fi done case "${CONTINUE}" in true) echo "$(basename ${DSC}): incomplete upload, ${FILE} is missing." continue ;; esac PACKAGE="$(basename ${DSC} .dsc | awk -F_ '{ print $1 }')" if [ "$(basename ${PWD})" != "${PACKAGE}" ] then mkdir -p "${PACKAGE}" cd "${PACKAGE}" fi VERSION="$(grep -m1 '^Version: ' ${DSC} | awk '{ print $2 }')" SOURCE_VERSION="$(echo ${VERSION} | awk -F: '{ print $2 }')" SOURCE_VERSION="${SOURCE_VERSION:-${VERSION}}" UPSTREAM_VERSION="$(echo ${SOURCE_VERSION} | awk -F- '{ $NF=""; print $0 }' | sed -e 's| |-|g' -e 's|-$||')" mkdir "${VERSION}_source" cd "${VERSION}_source" for FILE in ${FILES} ${DSC} do mv "${UPLOAD}/$(basename ${FILE})" . if [ -e ../orig/${FILE} ] then ln -sf ../orig/${FILE} ${FILE} fi done case "${MODE}" in progress-linux) psign.sh ;; bfh) bsign.sh ;; esac if ls ${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.xz > /dev/null 2>&1 && \ [ ! -h "${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.xz" ] then mkdir -p ../orig mv "$(ls ${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.*)" ../orig ln -s $(ls ../orig/${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.*) ./ fi cd .. rm -f current_source ln -s "${VERSION}_source" current_source cd "${CURDIR}" done fi