#!/bin/sh
# Build a WiredTiger release package.

set -e

. ../RELEASE_INFO || exit 1

TOPDIR=`pwd`/..
RELEASE_DIR=$TOPDIR/releases
DOC_DIR=$TOPDIR/../wiredtiger.github.com
DOCFILE=$TOPDIR/src/docs/top/main.dox
tmp=$0.tmp

RELEASE_PACKAGE=`ls $RELEASE_DIR | tail -n 1`

# Parse command line options.
while getopts d:r: OPT; do
    case "$OPT" in
        d)
            DOC_DIR=$OPTARG
            ;;
        r)
            RELEASE_PACKAGE=$OPTARG
            ;;
        \?)
            # getopts issues an error message
            echo $USAGE >&2
            exit 1
            ;;
    esac
done

# Remove the switches we parsed above.
shift `expr $OPTIND - 1`

if [ ! -d "$DOC_DIR" ]; then
    echo "Invalid Git doc repository $DOC_DIR"
fi
if [ ! -f "$RELEASE_DIR/$RELEASE_PACKAGE" ]; then
    echo "Invalid release package: $RELEASE_DIR/$RELEASE_PACKAGE"
fi

pkgver="$WIREDTIGER_VERSION"

# Find the old versions in the documentation.
oldrel=`grep current $DOCFILE | cut -d ' ' -f 2 | cut -d '<' -f 1`
prevrel=`grep previous $DOCFILE | cut -d ' ' -f 2 | cut -d '<' -f 1`

OLD_VERSION_MAJOR=`echo $oldrel | cut -d '.' -f 1`
OLD_VERSION_MINOR=`echo $oldrel | cut -d '.' -f 2`
OLD_VERSION_PATCH=`echo $oldrel | cut -d '.' -f 3`
PREV_VERSION_MAJOR=`echo $prevrel | cut -d '.' -f 1`
PREV_VERSION_MINOR=`echo $prevrel | cut -d '.' -f 2`
PREV_VERSION_PATCH=`echo $prevrel | cut -d '.' -f 3`

# Update the release versions on the landing page.
sed -e "s/$oldrel/$pkgver/" $DOCFILE > $tmp && mv $tmp $DOCFILE
if [ $OLD_VERSION_MINOR != $WIREDTIGER_VERSION_MINOR ]; then
    sed -e "s/$prevrel/$oldrel/" $DOCFILE > $tmp && mv $tmp $DOCFILE
fi

echo "Rebuild documentation root"
(cd "$TOPDIR/dist" && sh s_docs -l > /dev/null)

# Copy the new files into the documentation repository
(cd $TOPDIR && cp -r docs/top/* $DOC_DIR/)

# Unpack the documentation into the right location
(mkdir -p $DOC_DIR/$pkgver && cd $RELEASE_DIR && \
    cp $RELEASE_PACKAGE $DOC_DIR/releases/ &&
    tar xjf $RELEASE_PACKAGE -C $DOC_DIR/$pkgver --strip-components 2 wiredtiger-$pkgver/docs)

(cd $DOC_DIR && git add . $pkgver releases/wiredtiger-$pkgver.tar.bz2 && \
    git commit -m "Release $pkgver")

echo "Finished packaging documentation, you should now push the results. Run:"
echo "cd $DOC_DIR && git push origin"
echo "To backout changes run 'git reset HEAD~1'"
