#!/bin/csh -f
#
# Set environment variables and start Sparky.
#

# -----------------------------------------------------------------------------
# Figure out Sparky installation directory from $0.
#
set sparky_exe = $0
while (-l $sparky_exe)
  set ls_sparky_exe = `ls -l "$sparky_exe"`
  set sparky_exe = `echo "$ls_sparky_exe" | sed 's/.* -> //'`
end
set sparky_bin = `dirname "$sparky_exe"`
set sparky_bin = `cd "$sparky_bin"; pwd`
set sparky_inst = `dirname "$sparky_bin"`

# -----------------------------------------------------------------------------
# Sparky uses the SPARKY_INSTALL environment variable to find its
# application resource file and print prolog file.
#
setenv SPARKY_INSTALL		$sparky_inst

# -----------------------------------------------------------------------------
# If Python is available start Sparky as a Python extension.
# Otherwise the standalone version of Sparky is started.
#
set PYTHON = $SPARKY_INSTALL/python2.3/bin/python2.3
if (! -e $PYTHON) then
  set PYTHON = python2.3
endif

# -----------------------------------------------------------------------------
# Where to find Tcl/Tk shared libraries and resources.
#
setenv TCLTK_LIB		$SPARKY_INSTALL/lib
setenv LD_LIBRARY_PATH		$TCLTK_LIB
setenv LD_LIBRARYN32_PATH	$TCLTK_LIB
setenv DYLD_LIBRARY_PATH	$TCLTK_LIB
setenv TK_LIBRARY		$TCLTK_LIB/tk8.4
setenv TCL_LIBRARY		$TCLTK_LIB/tcl8.4

# -----------------------------------------------------------------------------
# Other programs Sparky can use.
#
set OSTYPE = `uname`
if ($OSTYPE == Darwin) then
  setenv SHOW_URL_COMMAND	'open "%s"'
else if ($OSTYPE == Linux) then
  setenv SHOW_URL_COMMAND	'mozilla -remote "openURL(%s)" || mozilla %s'
else
  setenv SHOW_URL_COMMAND	'netscape -remote "openURL(%s)" || netscape %s'
endif
setenv POSTSCRIPT_PREVIEWER	"/usr/bin/X11/showps -"
setenv MIDAS_COMMAND		/usr/local/midas/bin/midas

# -----------------------------------------------------------------------------
# If Python runs, start Sparky as a Python extension.
#
$PYTHON -c pass >& /dev/null
if ($status == 0) then

  # ---------------------------------------------------------------------------
  # Add path to Chimera molecular graphics program libraries.
  #
  if (! $?CHIMERA) then
    if ($OSTYPE == Darwin) then
      setenv CHIMERA /Applications/Chimera.app/Contents/Resources
    else
      setenv CHIMERA /usr/local/chimera
    endif
  endif
  if (-d $CHIMERA) then
    setenv LD_LIBRARY_PATH	${LD_LIBRARY_PATH}:$CHIMERA/lib
    setenv LD_LIBRARYN32_PATH	${LD_LIBRARYN32_PATH}:$CHIMERA/lib
    setenv DYLD_LIBRARY_PATH	${DYLD_LIBRARY_PATH}:$CHIMERA/lib
    setenv TIX_LIBRARY		$CHIMERA/lib/tix8.2	# Chimera needs Tix.
    setenv TCLLIBPATH		$CHIMERA/lib		# For Tcl to find Tix.
  endif

  # ---------------------------------------------------------------------------
  # Add the Sparky package and Tkinter to the Python path
  #
  set SPARKY_PYTHONPATH = $SPARKY_INSTALL/python:$SPARKY_INSTALL/python/lib-tk
  if ($?PYTHONPATH) then
    setenv PYTHONPATH ${SPARKY_PYTHONPATH}:$PYTHONPATH
  else
    setenv PYTHONPATH $SPARKY_PYTHONPATH
  endif

  $PYTHON -c "import sparky; sparky.start_session()" $*

else

  # ---------------------------------------------------------------------------
  # Start Sparky without Python
  #
  $SPARKY_INSTALL/bin/sparky-no-python $*

endif
