#!/bin/sh

if test $# -ne 1 -o -z "$1" ; then
    echo "Usage: $0 <packagename>"
    exit 1
fi
PACKAGE_NAME="$1"
WORK_DIR=`mktemp -d`
PACKAGE_DIR="${WORK_DIR}/${PACKAGE_NAME}"
DOC_DIR="${PACKAGE_DIR}/doc"
ARCHIVE_NAME="${PACKAGE_NAME}.tar.gz"
PKG_TOP_DIR=`pwd`
RELEASE_DIR="${PKG_TOP_DIR}/release"
CPYRHT_TXT="${RELEASE_DIR}/copyright.txt"
RELNAME_TXT="${RELEASE_DIR}/releasename.txt"
IGNORE_TXT="${RELEASE_DIR}/ignore_expand_keyword.txt"
EXPAND_SCRIPT="${RELEASE_DIR}/expand_tsukuba_keyword"

clean_exit () {
	rm -rf "${WORK_DIR}"
	exit $1
}

trap "clean_exit 1" INT HUP TERM

if test ! -e "configure.ac" ; then
    echo "execute this script in top directory: `pwd`"
    clean_exit 1
fi

if test ! -f "${EXPAND_SCRIPT}" ; then
    echo "needed ${EXPAND_SCRIPT}."
    clean_exit 1
fi
if test ! -f "${IGNORE_TXT}" ; then
    echo "needed ${IGNORE_TXT}."
    clean_exit 1
fi
if test ! -f "${CPYRHT_TXT}" ; then
    echo "needed ${CPYRHT_TXT}."
    clean_exit 1
fi
if test "* PLEASE DESCRIBE LICENSE AGREEMENT HERE *" = \
    "`head -n1 ${CPYRHT_TXT}`" ; then
    echo "before execute this script, describe copyright agreement ${CPYRHT_TXT}."
    clean_exit 1
fi
if test ! -f "${RELNAME_TXT}" ; then
    echo "needed ${RELNAME_TXT}."
    clean_exit 1
fi
if test "* PLEASE DESCRIBE RELEASE NAME HERE *" = \
    "`head -n1 ${RELNAME_TXT}`" ; then
    echo "before execute this script, describe release name in ${RELNAME_TXT}."
    clean_exit 1
fi

echo "reset dir"
rm -rf ${WORK_DIR}
mkdir -p ${PACKAGE_DIR}
if test "$?" -ne 0 ; then
	clean_exit 1
fi

echo "copy whole files"
tar cpf - ./ | (cd ${PACKAGE_DIR}; tar xpf -)
if test "$?" -ne 0 ; then
	clean_exit 1
fi

# expands keywords for a releasement.
echo "expand a copyright and a release name."
./release/expand_tsukuba_keyword \
  -ignore release/ignore_expand_keyword.txt\
  -copyright ${CPYRHT_TXT} \
  -release "`head -n1 ${RELNAME_TXT}`"\
  ${PACKAGE_DIR}

echo "delete .svn dirs"
find ${PACKAGE_DIR} -type d -name \.svn -print0 | xargs -0 rm -rf

echo "touch Makefile.in"
find ${PACKAGE_DIR} -type f -name Makefile.in -print0 | xargs -0 touch

echo "archiving"
cd ${WORK_DIR}
tar zcf ${ARCHIVE_NAME} $PACKAGE_NAME
cp ${ARCHIVE_NAME} ${PKG_TOP_DIR}/.
if test "$?" -ne 0 ; then
	clean_exit 1
fi

echo "completed"
clean_exit 0

