#!/bin/sh
#
# This script is used to generate the distribution tarball
#
srcdir=@srcdir@
top_srcdir=@top_srcdir@
top_dir=`cd $top_srcdir; pwd`
base_ver=`echo @E2FSPROGS_VERSION@ | sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
base_e2fsprogs=`basename $top_dir`
exclude=/tmp/exclude$$
GZIP=gzip

#
# This hack is needed because texi2dvi blows up horribly if there are 
# any '~' characters in the directory pathname.  So we kludge around it by
# using a non-standard directory name for WIP releases.  dpkg-source
# complains, but life goes on.
#
deb_pkgver=`echo @E2FSPROGS_PKGVER@ | sed -e 's/~/-/g'`
    
case $1 in
    debian|ubuntu)
	SRCROOT="e2fsprogs-$deb_pkgver"
	tarout="e2fsprogs_@E2FSPROGS_PKGVER@.orig.tar.gz"
	;;
   all|*)
	SRCROOT="e2fsprogs-$base_ver"
	tarout="$SRCROOT.tar.gz"
	;;
esac

if test -z "$SOURCE_DATE_EPOCH" ; then
    export SOURCE_DATE_EPOCH=$(cd $top_srcdir; git log -1 --pretty=%ct)
fi

(cd $top_srcdir/.. ; find $base_e2fsprogs \( -name \*~ -o -name \*.orig \
		-o -name CVS -o -name \*.rej -o -name Makefile.pq \
		-o -name TAGS -o -name \*.old -o -name SCCS \
		-o -name changed-files -o -name .#\* -o -name \*.tar.gz \
		-o -name autom4te.cache \) \
		-print) > $exclude
sed -e "s;^;$base_e2fsprogs/;" < $srcdir/all.exclude >> $exclude

(cd $top_srcdir/.. ; \
 tar -c -f - -X $exclude --sort=name --owner=0 --group=0 \
     --transform "flags=r;s|^$base_e2fsprogs|$SRCROOT|" \
     --numeric-owner --mtime="@${SOURCE_DATE_EPOCH}" $base_e2fsprogs) \
    | $GZIP -9n -c > $tarout
$GZIP -ln $tarout
rm -f "$exclude"
