#!/bin/bash --login
# This script sets up SLM Lab for Linux Ubuntu

# Fail on the first error; killable by SIGINT
set -e
trap "exit" INT

echo "--- Installing system dependencies ---"
sudo pacman -Suy
sudo pacman -Sy --needed git cmake gcc
sudo pacman -Sy --needed zlib libjpeg-turbo xorg-server-xvfb gst-libav xorg-server-devel python-opengl boost sdl swig base-devel gcc-libs hdf5 openblas

echo "--- Installing NodeJS Lab interface ---"
if which node >/dev/null; then
  echo "Nodejs is already installed"
else
  sudo pacman -Sy --needed nodejs npm
  sudo npm install --unsafe-perm=true --allow-root -g yarn
fi

echo "--- Installing npm modules for Lab interface ---"
if [ -d ./node_modules ]; then
  echo "Npm modules are already installed"
else
  yarn install
fi

echo "--- Installing Python for Lab backend ---"
if which python3 >/dev/null; then
  echo "Python3 is already installed"
else
  sudo pacman -Sy --needed python python-numpy python-pip python-setuptools
fi

echo "--- Installing Conda ---"
if which conda >/dev/null; then
  echo "Conda is already installed"
else
  sudo pacman -Sy --needed python-conda
  echo '. /etc/profile.d/conda.sh' >> ~/.bashrc
  source ~/.bashrc
fi

echo "--- Installing Conda environment ---"
if conda env list | grep "^lab " >/dev/null; then
  echo "conda env lab is already installed"
else
  conda create -n lab python=3.6 ipykernel -y
  conda activate lab
  python -m ipykernel install --user --name lab
fi

# remove for reset:
# conda deactivate
# conda env remove -n lab -y
# conda env export > environment.yml
echo "--- Updating Conda environment ---"

# Mac uses box2d-kengz, ubuntu uses box2d
conda activate lab
pip uninstall -y box2d-kengz
pip install box2d

source ~/.bashrc
echo "--- Lab setup complete ---"
