#!/usr/bin/env bash
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"

# check that everything is installed:
for package in build-essential dpkg-dev autoconf automake libtool flex bison gperf gawk m4 make odbcinst libxml2-dev libssl-dev libreadline-dev; do
    if dpkg-query -s $package 1>/dev/null 2>&1; then
        echo $package installed
    else
        echo $package NOT installed exiting
        exit 1
    fi
done

#HOT FIX (build own openssl) - based on https://github.com/openlink/virtuoso-opensource/blob/develop/7/README.OpenSSL.md
#https://github.com/openlink/virtuoso-opensource/issues/781    -  (OpenSSL 1.1 is not yet supported.)
SSL_VIRTUOSO_VERSION=1.0.2p
mkdir ssl_home
wget https://www.openssl.org/source/openssl-$SSL_VIRTUOSO_VERSION.tar.gz
tar -xvzf openssl-$SSL_VIRTUOSO_VERSION.tar.gz
rm openssl-$SSL_VIRTUOSO_VERSION.tar.gz
cd openssl-$SSL_VIRTUOSO_VERSION
./config --prefix=$SCRIPTPATH/ssl_home shared
make
make install
cd ..
rm -r openssl-$SSL_VIRTUOSO_VERSION


#download virtuoso sources:
VIRTUOSO_VERSION=7.2.5
VIRTUOSO_SOURCE=https://github.com/openlink/virtuoso-opensource/releases/download/v$VIRTUOSO_VERSION/virtuoso-opensource-$VIRTUOSO_VERSION.tar.gz

wget "$VIRTUOSO_SOURCE"
tar -xvzf virtuoso-opensource-$VIRTUOSO_VERSION.tar.gz
rm virtuoso-opensource-$VIRTUOSO_VERSION.tar.gz
mkdir virtuoso_install
cd ./virtuoso-opensource-$VIRTUOSO_VERSION/

LD_LIBRARY_PATH=$SCRIPTPATH/ssl_home/lib ./configure --prefix=$SCRIPTPATH/virtuoso_install --enable-openssl="$SCRIPTPATH/ssl_home"
LD_LIBRARY_PATH=$SCRIPTPATH/ssl_home/lib make
LD_LIBRARY_PATH=$SCRIPTPATH/ssl_home/lib make install

read -p "Update ~/.bashrc to include library path and executable path? [y/n]" -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "This script will now add library path and executable path to users .bashrc"
    echo -e "# added by virtuoso installer\nexport LD_LIBRARY_PATH=\"$SCRIPTPATH/ssl_home/lib:\$LD_LIBRARY_PATH\"\nexport PATH=\"$SCRIPTPATH/virtuoso_install/bin:\$PATH\"\n" >> ~/.bashrc
fi
