#!/usr/bin/env bash

########################################################
# Build SAGE source distribution
# This script should be called by the SAGE script
########################################################

PKGDIR=spkg

if [ $# -ne 2 ]; then
   echo "Usage: $0 <SAGE_VERSION> <SAGE_ROOT>"
   exit 1
fi

SAGE_VERSION=$1
SAGE_ROOT=$2
LD_LIBRARY_PATH="$SAGE_ROOT/local/lib:$LD_LIBRARY_PATH" && export LD_LIBRARY_PATH
export SAGE_ROOT SAGE_VERSION 
TARGET="sage-"$1

CUR=`pwd`


# UPDATE SAGE VERSION FILE: this is done here so
# the banner produced below this if block is correct.
if [ -d $SAGE_ROOT/devel/sage/sage ]; then
   cd $SAGE_ROOT/devel/sage/sage
   echo '"""nodoctests"""' > version.py
   echo "version='"$SAGE_VERSION"'; date='`date '+%Y-%m-%d'`'" >> version.py
   cd $SAGE_ROOT/devel/sage
   python setup.py install
fi

cd $SAGE_ROOT/local/bin/
echo "import sage.misc.banner; sage.misc.banner.banner()" | ./python > sage-banner

cd "$CUR"

cp $SAGE_ROOT/local/bin/sage-spkg $PKGDIR/base/
cp $SAGE_ROOT/local/bin/sage-env  $PKGDIR/base/
cp $SAGE_ROOT/local/bin/sage-make_relative $PKGDIR/base/

TMP="/tmp/$TARGET"

if [ -d $TMP ]; then
   rm -rf "$TMP"
fi

mkdir $TMP

cd $SAGE_ROOT
cp -LRp makefile *.txt *.sage sage ipythonrc $TMP/
STD=standard
mkdir $TMP/$PKGDIR
mkdir $TMP/$PKGDIR/$STD
cp -p $PKGDIR/$STD/README.txt $TMP/$PKGDIR/$STD/
cp -p $PKGDIR/$STD/deps $TMP/$PKGDIR/$STD/
cp -p $PKGDIR/$STD/libdist_filelist $TMP/$PKGDIR/$STD/
cp -p $PKGDIR/$STD/newest_version $TMP/$PKGDIR/$STD/
cp -pr $PKGDIR/base $TMP/$PKGDIR/
cp -p $PKGDIR/install $TMP/$PKGDIR/
cp -p $PKGDIR/update $TMP/$PKGDIR/
cp -p $PKGDIR/gen_html $TMP/$PKGDIR/

$SAGE_ROOT/local/bin/sage-make_devel_packages $SAGE_VERSION $SAGE_ROOT $TMP/devel

if [ $? -ne 0 ]; then
    echo "Error building the SAGE packages."
    exit 1
fi

cp $TMP/devel/*.spkg $SAGE_ROOT/$PKGDIR/$STD/

cp -p $PKGDIR/$STD/*.spkg $TMP/$PKGDIR/$STD/
cp -p $PKGDIR/$STD/*.txt $TMP/$PKGDIR/$STD/

cd $TMP/$PKGDIR/$STD
rm -rf doc-* sage-* extcode-* sage_scripts-* examples-*
mv $TMP/devel/*.spkg .
rmdir $TMP/devel

cd /tmp
tar cvf $TARGET.tar $TARGET

if [ ! -d $SAGE_ROOT/dist ]; then
    mkdir $SAGE_ROOT/dist
fi

if [ -d $SAGE_ROOT/dist/$TARGET ]; then 
    rm -rf "$SAGE_ROOT/dist/$TARGET"
fi

mv $TARGET $SAGE_ROOT/dist/
mv $TARGET.tar $SAGE_ROOT/dist/
