diff options
Diffstat (limited to 'scripts/make-distrofiles.sh')
-rwxr-xr-x | scripts/make-distrofiles.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/scripts/make-distrofiles.sh b/scripts/make-distrofiles.sh new file mode 100755 index 0000000..957c067 --- /dev/null +++ b/scripts/make-distrofiles.sh @@ -0,0 +1,53 @@ +#!/bin/bash +set -o errexit -o nounset -o xtrace + +# Run with -s to include *.symbols files. + +package=knot-resolver +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" +mv "${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 |