#!/bin/sh
# Copyright (C) 2020-2021 OpenCFD Ltd.
# SPDX-License-Identifier: (GPL-3.0+)
#
# Get the expected tarfile name based on debian/changelog information
#
# Extract package and version, essentially like
#
#     dpkg-parsechangelog -Ssource
#     dpkg-parsechangelog -Sversion
#
# but also strips out the index.
#
# It works without dpkg-parsechangelog, which can be handy if preparing
# preparing on an non-debian system
#
# ---------------------------------------------------------------------------
# The first line on debian/changelog contains something like this:
#
#   openfoam1912 (200316+dfsg1-2) unstable; urgency=medium
# -or-
#   openfoam (1912.200316+dfsg1-2) unstable; urgency=medium
#
# ---------------------------------------------------------------------------

# The debian/ directory is the parent directory
debianDir="${0%/*}/.."

unset ending
case "$1" in
(-gz)
    ending=".orig.tar.gz"
    ;;

(-f | -full | -xz)
    ending=".orig.tar.xz"
    ;;
esac

unset package version
for file in changelog ../openfoam.changelog changelog.debian
do
    file="$debianDir/$file"
    if [ -f "$file" ]
    then
        package=$(sed -ne '1s/^\([-a-zA-Z0-9]*\) .*/\1/p' "$file")
        version=$(sed -ne '1s/^[^()]*(\([^()]*\)).*/\1/p' "$file")

        # From version (2006.1-1+dfsg1) -> 2006
        version=$(echo "$version" | sed -e 's/[-+.~].*//')
        break
    fi
done

if [ -z "$package" ] || [ -z "$version" ]
then
    echo "${0##*/} Error: Cannot determine package/version" 1>&2
    echo "    Missing debian/changelog?" 1>&2
    exit 1
fi

echo "${package}_${version}${ending}"

# -----------------------------------------------------------------------------
