#! /bin/bash

die() {
	[ -n "$1" ] && echo "$@" > "/dev/stderr"
	exit 1
}

if [ "$1" = "-h" ]; then
	echo "Usage: $0 [-a]"
	exit 0
fi

if [ "$1" = "-v" ]; then
	echo "$0 version 0.0.2"
	exit 0
fi

URL_STABLE="http://svn.code.sf.net/p/netpbm/code/stable"
URL_ADVANCED="http://svn.code.sf.net/p/netpbm/code/advanced"
DOCURL="https://svn.code.sf.net/p/netpbm/code/userguide"

if [ "$1" = "-a" ]; then
	CHECKOUT=netpbm-advanced
	URL=${URL_ADVANCED}
else
	CHECKOUT=netpbm
	URL=${URL_STABLE}
fi

SVNURL="$(svn info --show-item url ${CHECKOUT} 2> /dev/null)"

if [ "$SVNURL" = "$URL" ]; then
	svn update ${CHECKOUT} && \
	svn update userguide
else
	svn checkout "$URL" ${CHECKOUT} && \
	svn checkout "$DOCURL"
fi || die "Cannot svn"

VERSION=$(make version CHECKOUT=${CHECKOUT}) || die "Cannot determine version"
echo "netpbm version $VERSION"

DIRNAME="netpbm-${VERSION}"
[ -d "${DIRNAME}" ] && die "${DIRNAME} already exists"

# shellcheck disable=SC2015
svn export ${CHECKOUT} "${DIRNAME}" && \
svn export userguide "${DIRNAME}/userguide" || die "Cannot export from svn"

pushd "${DIRNAME}/userguide" || exit 1
make -f ../buildtools/manpage.mk USERGUIDE=. manpages --keep-going
popd || exit 1

mkdir -p dist
tar cfv - "${DIRNAME}" | xz -9v > "dist/${DIRNAME}.tar.xz" || die tar failed
