#!/bin/bash

# Do NOT run this install with sudo!
# Just run ./install from the home directory in PAF

echo "Starting PAF setup - Please be patience!"

#Generic dependencies
sudo apt-get -y update 
sudo apt-get -y install curl wget unzip software-properties-common

#Python repo
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt-get -y update

mkdir -p ./tmp

if command -v python3.7 
then
	echo "Ok - python3.7 exists"
	sudo apt-get -y install lzma python3.7-tk tk-dev liblzma-dev libbz2-dev
else
	echo "Installing python3.7"
	#Python3 dependencies, I want to install them before I install python3.7
	sudo apt-get -y install python3.7
	sudo apt-get -y install python3-pip python3.7-dev
	sudo apt-get -y install lzma python3.7-tk tk-dev liblzma-dev libbz2-dev 
	echo "python3.7 installed!"
fi

#Generic dependencies common to Gelpia and dreal
sudo apt-get install -y libgmp-dev libmpfr-dev libmpc-dev
sudo apt-get install -y flex bison

echo "Installing Python3.7 packages..."
python3.7 -m pip install --user numpy scipy sympy matplotlib
python3.7 -m pip install --user pacal ply pychebfun sly
python3.7 -m pip install --user gmpy2
python3.7 -m pip install --user psutil statsmodels
echo "Done with packages!"

if python3.7 ./tmp/gelpia/bin/gelpia.py --function "0; " &> /dev/null
then
	echo "Ok - Gelpia exists"
else
	echo "Installing Gelpia..."
	git clone https://github.com/soarlab/gelpia.git ./tmp/gelpia
	cd ./tmp/gelpia
	make requirements
	make
	cd ../../
	echo "Done with Gelpia!"
fi

if python3.7 ./tmp/gelpia_constraints/bin/gelpia.py --function "0; " &> /dev/null
then
	echo "Ok - Gelpia Constraints exists"
else
	echo "Installing Gelpia Constraints..."
	git clone https://github.com/soarlab/gelpia.git ./tmp/gelpia_constraints 
	cd ./tmp/gelpia_constraints
	git checkout constraints 
	git pull
	make requirements 
	make
	cd ../../
	echo "Done with Gelpia Constraints!"
fi

if command -v z3 &> /dev/null
then
	echo "Ok - z3 exists"
else
	echo "Installing Z3..."
	cd ./tmp
	wget https://github.com/Z3Prover/z3/releases/download/z3-4.8.9/z3-4.8.9-x64-ubuntu-16.04.zip 
	unzip -u z3-4.8.9-x64-ubuntu-16.04.zip
	sudo cp z3-4.8.9-x64-ubuntu-16.04/bin/z3 /usr/bin/
	cd ../
	echo "Done with z3!"
fi

if command -v dreal &> /dev/null
then
	echo "Ok - dreal exists"
else
	echo "Installing dreal..."
	sudo add-apt-repository -y ppa:dreal/dreal
	sudo apt-get -y update
	sudo apt-get -y install coinor-libclp-dev g++ libfl-dev libgmp-dev libibex-dev libnlopt-dev pkg-config zlib1g-dev libpython3-dev
	cd ./tmp
	wget https://github.com/dreal/dreal4/releases/download/4.20.12.1/dreal_4.20.12.1_amd64.deb
	sudo dpkg -i dreal_4.20.12.1_amd64.deb
	sudo apt-get install -y -f
	sudo cp /opt/dreal/4.20.12.1/bin/dreal /usr/bin/
	echo "Done with dreal!"
	cd ../
fi

echo "Done with requirements!"
