#!/bin/sh
#
# makesrcdist - make a source distribution of pdfio.
#
# Usage:
#
#   ./makesrcdist [--snapshot] VERSION
#

# Support "--snapshot" option...
if test "$1" == "--snapshot"; then
    shift
    snapshot=1
else
    snapshot=0
fi

# Get version...
if test $# != 1; then
    echo "Usage: ./makesrcdist [--snapshot] VERSION"
    exit 1
fi

status=0
version=$1
version_major=$(echo $1 | awk -F. '{print $1}')
version_minor=$(echo $1 | awk -F. '{print $2}')

# Check that version number has been updated everywhere...
if test $(grep AC_INIT configure.ac | awk '{print $2}') != "[$version],"; then
    echo "Still need to update AC_INIT version in 'configure.ac'."
    status=1
fi

if test $(head -4 CHANGES.md | tail -1 | awk '{print $1}') != "v$version"; then
    echo "Still need to update CHANGES.md version number."
    status=1
fi
if test $(head -4 CHANGES.md | tail -1 | awk '{print $3}') = "YYYY-MM-DD"; then
    echo "Still need to update CHANGES.md release date."
    status=1
fi

if test $(grep PDFIO_VERSION= configure | awk -F \" '{print $2}') != "$version"; then
    echo "Still need to run 'autoconf -f'."
    status=1
fi

if test $(grep '<version>' pdfio_native.nuspec | sed -E -e '1,$s/^.*<version>([0-9.]+).*$/\1/') != "$version"; then
    echo "Still need to update version in 'pdfio_native.nuspec'."
    status=1
fi

if test $(grep '<version>' pdfio_native.redist.nuspec | sed -E -e '1,$s/^.*<version>([0-9.]+).*$/\1/') != "$version"; then
    echo "Still need to update version in 'pdfio_native.redist.nuspec'."
    status=1
fi

if test $(grep PDFIO_VERSION pdfio.h | awk -F \" '{print $2}') != "$version"; then
    echo "Still need to update PDFIO_VERSION in 'pdfio.h'."
    status=1
fi
if test $(grep PDFIO_VERSION_MAJOR pdfio.h | awk '{print $4}') != "$version_major"; then
    echo "Still need to update PDFIO_VERSION_MAJOR in 'pdfio.h'."
    status=1
fi
if test $(grep PDFIO_VERSION_MINOR pdfio.h | awk '{print $4}') != "$version_minor"; then
    echo "Still need to update PDFIO_VERSION_MINOR in 'pdfio.h'."
    status=1
fi

if test $(grep VERSION pdfio1.def | awk '{print $2}') != "$version_major.$version_minor"; then
    echo "Still need to update VERSION in 'pdfio1.def'."
    status=1
fi

if test $status = 1; then
    exit 1
fi

# Tag release...
if test $snapshot = 0; then
    echo Creating tag for release...
    git tag -m "Tag $version" v$version
    git push origin v$version
fi

# Make source archives...
echo Creating pdfio-$version.tar.gz...
git archive --format tar --prefix=pdfio-$version/ HEAD | gzip -v9 >pdfio-$version.tar.gz
gpg --detach-sign pdfio-$version.tar.gz

echo Creating pdfio-$version.zip...
git archive --format zip --prefix=pdfio-$version/ HEAD >pdfio-$version.zip
gpg --detach-sign pdfio-$version.zip