#!/usr/bin/env bash

# This bootstrap scripts set up the build environment for TimescaleDB
# Any flags will be passed on to CMake, e.g.,
# ./bootstrap -DCMAKE_BUILD_TYPE="Debug"

## Check to make cmake is installed
if ! command -v cmake >/dev/null 2>&1; then
	echo "cmake is required to build TimescaleDB. Please install via your system's preferred method."
	exit 1
fi

BUILD_DIR=${BUILD_DIR:-./build}
BUILD_FORCE_REMOVE=${BUILD_FORCE_REMOVE:-false}
SRC_DIR=$(dirname $0)
if [[ ! ${SRC_DIR} == /* ]]; then
    SRC_DIR=$(pwd)/${SRC_DIR}
fi

if [ ${BUILD_FORCE_REMOVE} == "true" ]; then
    rm -fr ${BUILD_DIR}
elif [ -d ${BUILD_DIR} ]; then
    echo "Build system already initialized in ${BUILD_DIR}"

    read -r -n 1 -p "Do you want to remove it (this is IMMEDIATE and PERMANENT), y/n? " choice
    echo ""
    if [ $choice == "y" ]; then
        rm -fr ${BUILD_DIR}
    else
        exit
    fi
fi

set -e
set -u

mkdir -p ${BUILD_DIR} && \
    cd ${BUILD_DIR} && \
    cmake ${SRC_DIR} "$@"

echo "TimescaleDB build system initialized in ${BUILD_DIR}. To compile, do:"
echo -e "\033[1mcd ${BUILD_DIR} && make\033[0m"
