#!/bin/sh
#
if [ -z "$DNAHOME" ]; then
  echo "ERROR: DNAHOME not defined."
  exit 1
fi
if [ -z "$DNANAME" ]; then
  echo "ERROR: DNANAME not defined."
  exit 1
fi
#
# Do some cleaning of pyxie temporary files...
#
/bin/rm -f `find /tmp -user $USER -name \@\* -maxdepth 1`
#
# Check if DNA_PYTHON is set, if not set it to "python"
#
if [ -z $DNA_PYTHON ]; then
  DNA_PYTHON=python
fi
#
# Setup CCP4 with CCP4_SETUP if available
#
if [ -z "$CCP4" ]; then
  if [ -n "$CCP4_SETUP" ]; then
    $CCP4_SETUP
  fi
fi
#
# Check that it is installed...
#
if [ -z "$CCP4" ]; then
  echo "ERROR: CCP4 not installed."
  #
  # Send error message to the GUI as well...
  #
  echo "Trying to send error message to GUI..."
  rm -f /tmp/dna_err.txt
  echo "ERROR: CCP4 not installed." > /tmp/dna_err.txt
  $DNA_PYTHON $DNAHOME/es/src/send_es_error_message_to_gui.py /tmp/dna_err.txt
  rm -f /tmp/dna_err.txt
  exit 1
fi
#
# Set DNATMPDIR to default working directory if not defined
#
if [ -z "$DNATMPDIR" ] ; then
  DNATMPDIR=`pwd`
  export DNATMPDIR
else
  #
  # Check that the provided DNATMPDIR is a directory
  #
  if [ ! -d "$DNATMPDIR" ]; then
    echo "ERROR! DNATMPDIR is set to $DNATMPDIR but this directory does not exist."
    echo "Please correct DNATMPDIR and restart DNA."
    exit 1
  fi
  #
  # Check that the provided DNATMPDIR is writable
  #
  if [ ! -w "$DNATMPDIR" ]; then
    echo "ERROR! DNATMPDIR is set to $DNATMPDIR but this directory is not writable for DNA." 
    echo "Please correct DNATMPDIR and restart DNA."
    exit 1
  fi
fi
#
# Set DNALOGDIR to default working directory if not defined
#
if [ -z "$DNALOGDIR" ] ; then
  DNALOGDIR=`pwd`
  export DNALOGDIR
else
  #
  # Check that the provided DNALOGDIR is a directory
  #
  if [ ! -d "$DNALOGDIR" ]; then
    echo "ERROR! DNALOGDIR is set to $DNALOGDIR but this directory does not exist."
    echo "Please correct DNALOGDIR and restart DNA."
    exit 1
  fi
  #
  # Check that the provided DNALOGDIR is writable
  #
  if [ ! -w "$DNALOGDIR" ]; then
    echo "ERROR! DNALOGDIR is set to $DNALOGDIR but this directory is not writable for DNA." 
    echo "Please correct DNALOGDIR and restart DNA."
    exit 1
  fi
fi
#
# Setup the PYTHONPATH
#
PYTHONPATH=$DNAHOME/es/src:$DNAHOME/xsd/python
PYTHONPATH=$PYTHONPATH:$DNAHOME/libraries/aalib/modules
PYTHONPATH=$PYTHONPATH:$DNAHOME/scheduler/Scheduler/Mosflm
PYTHONPATH=$PYTHONPATH:$DNAHOME/scheduler/DiffractionImage/lib
PYTHONPATH=$PYTHONPATH:$DNAHOME/ext/lib
# PYTHONPATH=$PYTHONPATH:$DNAHOME/scheduler/lib
# PYTHONPATH=$PYTHONPATH:$DNAHOME/scheduler/V2/Mosflm
# PYTHONPATH=$PYTHONPATH:$DNAHOME/scheduler/V2/Generic
export PYTHONPATH
#
# Setup the LD_LIBRARY_PATH
#
if [ -z "$LD_LIBRARY_PATH" ]; then
  export LD_LIBRARY_PATH=$DNAHOME/scheduler/lib:$DNAHOME/ext/lib
else
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DNAHOME/scheduler/lib:$DNAHOME/ext/lib
fi
#
# Log file
#
if [ -z "$DNALOGDIR" ]; then
  ESLOGFILE=./es.log
  ESERRFILE=./es.err
else
  ESLOGFILE=$DNALOGDIR/es.log
  ESERRFILE=$DNALOGDIR/es.err
fi
#
# Path for MOSFLM
#
export PATH=$DNAHOME/third_party/mosflm:$PATH
export PATH=$DNAHOME/third_party/mosflm/bin:$PATH
#
# Environment for BEST
#
export besthome=$DNAHOME/third_party/best_v3.0
export PATH=$besthome:$PATH
#
# Run the Executive System
#
if [ "$1" = "-t" ]; then
  if $DNA_PYTHON $DNAHOME/es/src/ExecutiveSystem.py $DNAESARGS
  then
     echo "Clean ExecutiveSystem shut down."
  else
     echo "ERROR! The ExecutiveSystem has died!"
  fi
else
  if $DNA_PYTHON $DNAHOME/es/src/ExecutiveSystem.py $DNAESARGS  > $ESLOGFILE 2> $ESERRFILE
  then
     echo "Clean ExecutiveSystem shut down."
  else
     echo "Sending error message to the GUI".
     $DNA_PYTHON $DNAHOME/es/src/send_es_error_message_to_gui.py $ESERRFILE
  fi
fi

