#! /bin/bash

PKG=python
VERSION=3.7.1
BUILD=2
PREFIX=/pkg/$PKG-$VERSION-$BUILD
if [ -n "$TESTING" ]; then PREFIX=/dev/shm/$PKG-$VERSION-$BUILD ; fi

set -xe
umask 022

BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp
test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR
mkdir -p $BUILD_TMPDIR/home
export TMPDIR=$BUILD_TMPDIR
export HOME=$BUILD_TMPDIR/home

exec </dev/null

mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
	PATH=$PREFIX/bin:\$PATH
	if [ -d $PREFIX/.compatlibs ]; then export LD_LIBRARY_PATH=$PREFIX/.compatlibs\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH} ; fi
EOF
. $PREFIX/profile

export MAKEFLAGS="-j $(nproc)"

BUILDDIR=$PREFIX/build

mkdir -p $BUILDDIR
cd $BUILDDIR

test -e Python-$VERSION.tar.xz || wget https://www.python.org/ftp/python/$VERSION/Python-$VERSION.tar.xz
test -d Python-$VERSION        || tar xvf Python-$VERSION.tar.xz
cd Python-$VERSION

LDFLAGS="-Wl,-rpath=$PREFIX/lib" \
./configure \
        --prefix=$PREFIX \
        --enable-shared

make -j $(nproc)
# make test || true # 'test_socket' seems to run for ever
make install

( # sip: tool to create Python bindings for C and C++ libraries.
  cd $PREFIX/build
  SIP_VERSION=4.19.13
  SIP_SRC=https://sourceforge.net/projects/pyqt/files/sip/sip-$SIP_VERSION/sip-$SIP_VERSION.tar.gz
  test -e sip-$SIP_VERSION.tar.gz || wget $SIP_SRC
  test -d sip-$SIP_VERSION || tar -xf sip-$SIP_VERSION.tar.gz

  PYTHONVER=$( echo $VERSION | cut -f 1-2 -d. )
  cd sip-$SIP_VERSION

  python3 configure.py \
      -b $PREFIX/bin \
      -d $PREFIX/lib/python$PYTHONVER/site-packages \
      -e $PREFIX/include/python${PYTHONVER}m \
      -v $PREFIX/share/sip

  mkdir -p $PREFIX/share/sip
  make; make install
)

python3 -m ensurepip
pip3 install -I pip

pip3 install ipython[all]
pip3 install SciPy NumPy Matplotlib pandas SymPy nose statsmodels

pip3 install Cython

pip3 install pysam
pip3 install seaborn
pip3 install scikit-learn
# pip3 install metaseq # fails (Latest commit fa875d1 on Jan 10, 2017)
pip3 install Mako
pip3 install meson

# Helpdesk 01/24/18 16:19, Sabrina Krakau
pip3 install cutadapt

#Helpdesk 03/26/18 14:19, Virginie Stanisla
pip3 install pygobject

pip3 install python-bioformats
pip3 install umi-tools
pip3 install sphinx
pip3 install recommonmark
pip3 install fastcluster
pip3 install pydot
pip3 install pygraphviz
pip3 install deeptools
pip3 install HTSeq
pip3 install keras

# Alena 30.8.2018
pip3 install MotifScan
pip3 install MAmotif

pip3 install hic2cool  # helpdesk robert schoepflin 17.09.2018
# pip3 install hifive  # only 2.7+

# snakemake likes to have this one, but datrie isn't 3.7 aware ...
# luckily a fix is available (https://github.com/pytries/datrie/issues/52)
(
  DATRIE_PY_VERSION=0.7.1
  DATRIE_PY_SRC=https://github.com/pytries/datrie/archive/$DATRIE_PY_VERSION.tar.gz
  cd $PREFIX/build
  test -e $DATRIE_PY_VERSION.tar.gz || wget $DATRIE_PY_SRC
  test -d datrie-$DATRIE_PY_VERSION || tar -xf $DATRIE_PY_VERSION.tar.gz

  cd datrie-$DATRIE_PY_VERSION
  ./update_c.sh
  python3.7 setup.py build
  python3.7 setup.py install
)
pip3 install snakemake
pip3 install virtualenv  # Donald
pip3 install odfpy       # Donald

exit