knot-dns/scripts/make-distrofiles.sh
2018-07-20 14:55:16 +02:00

52 lines
1.1 KiB
Bash
Executable file

#!/bin/bash -e
# Run with -s to include *.symbols files.
package=knot
withsymbols=false
while getopts "s" o; do
case "${o}" in
s)
withsymbols=true
;;
*)
;;
esac
done
shift $((OPTIND-1))
cd "$(git rev-parse --show-toplevel)"
version=$(ls ${package}*.tar.xz | sed "s/${package}-\(.*\).tar.xz/\1/")
# Check version for invalid characters
if [[ $(echo "${version}" | grep '^[[:alnum:].]$') -ne 0 ]]; then
echo "Invalid version number: may contain only alphanumeric characters and dots"
exit 1
fi
# Fill in VERSION field in distribution specific files
files="distro/rpm/${package}.spec distro/deb/changelog distro/arch/PKGBUILD"
for file in ${files}; do
sed -i "s/__VERSION__/${version}/g" "${file}"
done
# Rename archive to debian format
pkgname="${package}-${version}"
debname="${package}_${version}.orig"
ln -s "${pkgname}.tar.xz" "${debname}.tar.xz"
# Prepare clean debian-specific directory
tar -xf "${debname}.tar.xz"
pushd "${pkgname}" > /dev/null
cp -arL ../distro/deb debian
# Optionally remove symbols file
if [ "$withsymbols" = false ]; then
rm -f debian/*.symbols
fi
# Create debian archive and dsc
dpkg-source -b .
popd > /dev/null