#!/usr/bin/env bash
# Wrapper script for mxdisplay-cad-py

############################################
# Start of standard CMake-generated preamble
set -e
FILE=${0}
# First, probe if we are calling script at
# install-time (postinst/postrm) or we are 
# running in an installation "userland"
SCRIPT=`basename $FILE`
if [[ ${SCRIPT} == *.postinst || ${SCRIPT} == *.postrm || ${SCRIPT} == *rpm-tmp* ]];
  then
  MCCODE_BINDIR=/usr/bin
else
  readlinkf(){ python3 -c 'import sys,pathlib
print(pathlib.Path(sys.argv[1]).resolve().absolute())' "$1"
  }
  LINK=$(readlinkf ${FILE}||true)
  if [ "x${LINK}" != "x" ]
 then
    FILE=${LINK}
  fi
  MCCODE_BINDIR="$( cd -P "$( dirname "${FILE}" )" && pwd )"
fi
MCCODE_TOOLDIR="${MCCODE_BINDIR}/../share/mcxtrace/tools"
MCCODE_LIBDIR="${MCCODE_BINDIR}/../lib"
MCCODE_RESOURCEDIR="${MCCODE_BINDIR}/../share/mcxtrace/resources"
if [ -d "${MCCODE_TOOLDIR}" ]
 then
    MCCODE_TOOLDIR="$( cd -P "${MCCODE_TOOLDIR}" && pwd )"
else
    MCCODE_TOOLDIR=""
fi
if [ -d "${MCCODE_LIBDIR}" ]
 then
    MCCODE_LIBDIR="$( cd -P "${MCCODE_LIBDIR}" && pwd )"
else
    MCCODE_LIBDIR=""
fi
if [ -d "${MCCODE_RESOURCEDIR}" ]
 then
    MCCODE_RESOURCEDIR="$( cd -P "${MCCODE_RESOURCEDIR}" && pwd )"
else
    MCCODE_RESOURCEDIR=""
fi
# End of standard preamble
############################################

TOOL="mxdisplay"
UTILDIR="${MCCODE_TOOLDIR}/Python/mxdisplay/cad"


#NB: miniconda should be installed next to the tool folder:
if [ -d "${MCCODE_TOOLDIR}/../miniconda3" ]; then
    source "${MCCODE_TOOLDIR}/../miniconda3/bin/activate" "${MCCODE_TOOLDIR}/../miniconda3"
    export PATH=${MCCODE_TOOLDIR}/../miniconda3/bin/:$PATH
fi

canrun() {
    if ! [ -x "${UTILDIR}/${TOOL}.py" ]; then
        exit 127;
    fi

    modules="cadquery"
    cmd=""
    for name in ${modules}; do
        cmd="${cmd}import ${name}; "
    done
    python3 -c "${cmd}"
}

if ( canrun ); then
    python3 -u ${UTILDIR}/${TOOL}.py "$@"
else
    mcxtrace_errmsg Failed to run Python ${TOOL} - permissions or missing dependencies\?
fi
