#!/bin/sh
# Make a snapshot of the CVS head revision

exec >>/home/koch/mksnapshot.log 2>&1

echo "Started at `date`."
set -e

ftp_dir=$1

cd $HOME/pub
PATH="$HOME/bin:$PATH"

fix_version () {
    version=$(cat $1/VERSION)
    echo "$version-snap$(date +%Y-%m-%d)" >$1/VERSION
    cat <<EOF >$1/SNAPSHOT
		  WARNING!

This is a snapshot of the current CVS head branch!

It may not compile or not work.  Please don't report
bugs about this snapshot release it is just for your
convenience and to reduce the load of out CVS server.

Thanks,

   Werner
EOF
}

build_dist () {
    set +e
    nice scripts/autogen.sh && nice ./configure && nice make dist
    if ! awk '
/^diff gnupg-snapshot\/VERSION/  { getline; getline; getline; getline; next }
/^Common subdirectories:/   { next }
/~$/	{ next }
{ exit 1 }
'      ; then
	# Okay, we have some changes and it is not only the version number
	rm $ftp_dir/gnupg-*snap*-*-*.tar.gz
	mv gnupg-*.tar.gz $ftp_dir/
    fi
    make distclean
    set -e
}



do_export () {
    pgm=$1
    mod=$2

    rm -rf $pgm.new || true
    rm -rf $pgm.old || true
    cvs -Q export -r HEAD -d $pgm.new $mod
    fix_version $pgm.new
    if [ -n "$ftp_dir" ]; then
      here=$(pwd)
      cd $pgm.new
      build_dist
      cd $here
    fi
    [ -d $pgm ] && mv $pgm $pgm.old
    if ! mv $pgm.new $pgm ; then
	echo "rename failed - restoring" >&2
	mv $pgm.old $pgm
	exit 1
    fi
    rm -rf $pgm.old || true
}


do_export gnupg-snapshot gnupg

echo "Ended at `date`."
exit 0