#!/usr/bin/env bash

VERSION="3-1-7"
PATCHLEVEL="p1"

if [ $# -ne 0 ]; then
    UPSTREAM_SOURCE_DIRECTORY=$1
    echo "Using tarballs from $UPSTREAM_SOURCE_DIRECTORY instead of downloading"
fi

SPKG_ROOT=`pwd`

set -e
shopt -s extglob

# Remove old sources and download new
rm -rf src
mkdir src
cd src

URL="http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES"
if [ -z "$UPSTREAM_SOURCE_DIRECTORY" ]; then
    tar xzf <( curl -L "$URL/$VERSION/Singular-$VERSION$PATCHLEVEL.tar.gz" )
    tar xzf <( curl -L "$URL/$VERSION/Singular-$VERSION-share.tar.gz" )
else
    tar xzf "$UPSTREAM_SOURCE_DIRECTORY/Singular-$VERSION$PATCHLEVEL.tar.gz"
    tar xzf "$UPSTREAM_SOURCE_DIRECTORY/Singular-$VERSION-share.tar.gz"
fi

### Sanitize upstream shared (documentation) dir
if [ ! -d Singular ]; then
    echo "Singular directory not in Singular shared tarball, aborting"
    exit 1
fi
mkdir shared
cp "Singular/$VERSION/doc/singular.idx" shared/
cp "Singular/$VERSION/info/singular.hlp" shared/
rm -r Singular


# Sanitize upstream sources
if [ ! -d "Singular-$VERSION" ]; then
    echo "Singular-$VERSION directory not in Singular tarball, aborting"
    exit 1
fi
mv "Singular-$VERSION" latest
cd latest
rm -r ntl
rm -r modules
rm -r MP
rm -r Tst
gzip -9 omalloc/Misc/dlmalloc/malloc.ps
rm -r Singular/LIB/surfex


### Finished creating the src/ directory

# Make everything writable
cd "$SPKG_ROOT"
chmod -R u+w src
