#!/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 armel armhf 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 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}" FILES="$(sed -e '1,/^Files:$/ d' ${CHANGE} | grep -v '^\ \ ' | grep '^\ ' | awk '/^ / { print $5 }')" for FILE in ${FILES} do mv "${UPLOAD}/${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 mv ${CHANGE} . 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 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" FILES="$(sed -e '1,/^Files:$/ d' ${DSC} | grep -v '^\ \ ' | grep '^\ ' | awk '/^ / { print $3 }')" for FILE in ${FILES} do mv "${UPLOAD}/${FILE}" . if [ -e ../orig/${FILE} ] then ln -sf ../orig/${FILE} ${FILE} fi done mv ${DSC} . 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