#!/bin/bash

# Created by jiaqiang.ye@lnxall.com
# Build Environment Initialization
# 2025/04/23

# NOTE: TO BE SOURCED BY `toolchain.sh

RUST_DIR='/opt/rust-lang'
LUA_BINDIR=/opt/Lua51/bin
PYTHON_BINDIR=/opt/Python3.9.13/bin

# setup `PATH, `PYTHONPATH environment variables:
declare -x PYTHONPATH=${FTOPDIR}/scripts/host/lib/python3.9/site-packages
if [ "${TC_BINDIR}" = "/usr/bin" ] ; then
	declare -x PATH="${PYTHON_BINDIR}:${LUA_BINDIR}:${RUST_DIR}/cargo/bin:/usr/local/bin:${FTOPDIR}/scripts/host/bin:/usr/bin:/usr/sbin:/bin:/sbin"
else
	declare -x PATH="${PYTHON_BINDIR}:${LUA_BINDIR}:${TC_BINDIR}:${RUST_DIR}/cargo/bin:/usr/local/bin:${FTOPDIR}/scripts/host/bin:/usr/bin:/usr/sbin:/bin:/sbin"
fi

# check for gcc toolchain BIN directory:
if [ ! -d "${TC_BINDIR}" ] ; then
	echo "Error, \`TC_BINDIR not defined or not found: ${TC_BINDIR}" 1>&2
	exit 1
fi

# Rust is mandatory:
if [ ! -d  "${RUST_DIR}" ] ; then
	echo "Error, rust compiler not installed." 1>&2
	exit 2
fi

# setup `RUSTUP_HOME environment variable:
declare -x RUSTUP_HOME="${RUST_DIR}/rustup"
if [ ! -d "${LUA_BINDIR}" ] ; then
	echo "Error, directory not found. Please extract \`scripts/Lua51.tar to \`/opt" 1>&2
	exit 3
fi

# check for specific version of python3
if [ ! -d ${PYTHON_BINDIR} ] ; then
	echo "Error, Python3.9.13 not found. Please ensure host python 3.9.13 exists" 1>&2
	echo "==> cd opensource/python3 && sudo tar -Jxf Python3.9.13.tar.xz -C /opt"
	exit 4
fi

# check for LNX_TCSTRIP variable, which must exist
if [ -z "${LNX_TCSTRIP}" ] ; then
	echo "Error, variable \`LNX_TCSTRIP not set."
	exit 5
fi

# remove unused variables
export -n RUST_DIR PYTHON_BINDIR LUA_BINDIR TC_BINDIR CARGO_HOME LD_LIBRARY_PATH
unset -v  RUST_DIR PYTHON_BINDIR LUA_BINDIR TC_BINDIR CARGO_HOME LD_LIBRARY_PATH
