#!/bin/bash
cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
if [[ $(basename $(pwd)) == "bin" ]]; then
    cd ..
fi

# export MPLBACKEND=qt5agg
export QT_QPA_PLATFORM=xcb
export NO_AT_BRIDGE=1

. ./bin/setup_env

if command -v nproc &> /dev/null; then
    FAST_CORES=$(($(nproc) / 2 - 1))
else
    FAST_CORES=3 # default value
fi

GCT="--gcthreads=$FAST_CORES,1"
JULIA_THREADS="-t $FAST_CORES,1"

julia_version=$(julia --version | awk '{print($3)}')
julia_major=${julia_version:0:3} 
if [[ $julia_major == "1.1" ]]; then
    julia_major=${julia_version:0:4}
    if [[ $julia_major == "1.11" ]]; then
        JULIA_THREADS="-t 1"
    elif [[ $julia_major == "1.12" ]]; then
        JULIA_THREADS="-t 1,0"
    fi
else
    GCT=""
fi
branch=$(git rev-parse --abbrev-ref HEAD)

echo "Launching KiteController..."
if test -f "bin/kps-image-${julia_major}-${branch}.so"; then
    echo "Found system image!"
    julia  -J  bin/kps-image-${julia_major}-${branch}.so $JULIA_THREADS $GCT --project -e "push!(LOAD_PATH,joinpath(pwd(),\"src\"));include(\"./examples/autopilot.jl\")"
else
    julia  --project $JULIA_THREADS $GCT -e "push!(LOAD_PATH,joinpath(pwd(),\"src\"));include(\"./examples/autopilot.jl\")"
fi