#!/bin/bash

# Check if environment is already loaded
if [ -n "$_COUPLEDMATRIX_ENV_LOADED" ]; then
    cat >&2 <<'EOF'
Warning: coupledPorousMedia environment is already loaded.
Run 'coupledporousmedia_Unset' first to unload before reloading.
EOF
    return 0 2>/dev/null || exit 0
fi

# Save original environment state before any modifications
echo export _COUPLEDMATRIX_SAVED_PATH="\${PATH}"
echo export _COUPLEDMATRIX_SAVED_LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}"
echo export _COUPLEDMATRIX_SAVED_MANPATH="\${MANPATH}"

source /opt/foam/foam-extend-5.0/etc/bashrc

SOLVER=$(echo $0 | awk -F '/' '{print $NF}')

cat <<EOF
alias ${SOLVER}_Unset='source \${WM_PROJECT_DIR}/site/${SOLVER}/etc/config.sh/unset'
EOF

SOLVER_DIR="${WM_PROJECT_DIR}/site/${SOLVER}"

if [ -f ${SOLVER_DIR}/etc/bashrc ]; then
    source ${SOLVER_DIR}/etc/bashrc
fi

cat ${WM_PROJECT_DIR}/etc/bashrc | sed -e "s/^export FOAM_INST_DIR=.*/export FOAM_INST_DIR=\/usr\/lib\/openfoam/g"

if [ -f ${SOLVER_DIR}/etc/bashrc ]; then
    cat ${SOLVER_DIR}/etc/bashrc | awk -v dir=${COUPLED_DIR} '{ if ( $0 ~ /^DIR=.*\*/ ) {print "DIR=\""dir"\""} else {print} }'
fi 

echo export PATH=\${WM_PROJECT_DIR}/site/${SOLVER}/\$WM_OPTIONS/bin:\$PATH
echo export LD_LIBRARY_PATH=\${WM_PROJECT_DIR}/site/${SOLVER}/\$WM_OPTIONS/lib:\$LD_LIBRARY_PATH

# Set marker to indicate environment is loaded
echo export _COUPLEDMATRIX_ENV_LOADED=1
