src.dualinventive.com/devops/ansible/roles/reprepro/files/add_debs.sh

43 lines
1.1 KiB
Bash

#!/bin/bash
UPLOAD_DIR=/home/di-ci/upload
set -e
cd /home/di-apt/pub
# $1 target (apt component), e.g development
# $2 name, e.g di-smp
# $3 file, e.g di-smp.deb
# $4 distro, e.g stretch (or di for jessie)
add_deb_to_repo() {
reprepro -C $1 remove $4 "$2"
reprepro deleteunreferenced
reprepro -C $1 includedeb $4 "$3"
}
# $1 directory, e.g /home/di-ci/upload/jessie
# $2 reponame, e.g di, stretch
add_packages_from_dir() {
for target in development testing acceptation production; do
for i in `find $1/${target} -name *.deb 2>/dev/null`; do
if [ -e "$i" ]; then
pkg=`basename $i`
echo "[`date`][$target] $pkg"
sudo /bin/chmod g+w `dirname $i`
sudo /bin/chmod g+w $i
dpkg-sig -k 907592FF --sign builder $i
NAME=`dpkg --info $i | grep 'Package' | awk '{print $NF}'`
add_deb_to_repo "${target}" "$NAME" "$i" $2
rm -f $i
fi
done
done
}
add_packages_from_dir ${UPLOAD_DIR}/jessie di
add_packages_from_dir ${UPLOAD_DIR}/stretch stretch
# NOTE: this must be last as it eats all packages from the root upload dir
# compatibility with old ci uploads
add_packages_from_dir ${UPLOAD_DIR} di