#!/bin/csh -X
#
#-----------------------------------------------------------------------------
#
# OPUS login AUTO TEMPLATE
#
# This file is a template of opus_login.csh, and is used by the automatic
# configuration generator.  You can add any additional definitions to the
# file created by the generator, but be aware that these will be lost if
# if you re-run the generator.  This version adds the reference file 
# pipeline setup.
#
# Any names below prefixed by "_empty_" should get replaced by the 
# configuration generator.
#
# Your own version of this file should be placed in the directory
# defined below as opus_definitions_dir.
#
#            PR
#   DATE   NUMBER   User      Description
# -------- ------   ------    -------------------------------------
# 04/22/97 33431    WMiller   Initial code
# 03/03/99 37348_01 Rose      Add the STSDASDISK
# 08/12/99 39546    Rose      Add sys_init path
# 01/17/99 39511_03 MSwam     Add FOC/WF2 UNIX vars and SPSS_DB 
# 10/05/99 39255    MSwam     Add OPUSIRAF and COMPASS_FIFO items
# 03/13/00 39255_01 MSwam     Adjust OPUSIRAF items
# 05/16/00 39035    MSwam     Add LD_LIBRARY_PATH
# 06/14/00 41693    Sherbert  Minor adjustments
# 07/14/00 41927    WMiller   Add OPUS_REMOTE_SHELL & OPUS_REMOTE_COPY
# 01/25/01 43165    MSwam     Add OPUS_TESTING for OTFR use
# 10/15/01 43409    Slowinski make modifications for ops
# 01/21/02 44675_01 MSwam     Add cracscomp definition 
# 04/29/02 45696    MSwam     Add Solaris notes for IRAF/STSDAS usage
# 07/22/02 45279    Sherbert  Add "hidden" environ var options
# 07/23/02 45279    Sherbert  Add jtab to reference vars; CDBS burned w/o it
# 08/20/02 46432    MSwam     Changes for PyDrizzle v3.3
# 11/15/02 46981    MSwam     Add CDBS,KW db items and PYTHONPATH
# 01/31/03 47461    MSwam     set IRAFARCH to find cal executables
# 02/10/03 46947    Sherbert  Add JLIB
# 02/19/03 46981_02 MSwam     Add ACE_TAO_LIBS, CFITSIO_LIBS
# 02/28/03 46981_03 MSwam     Add OPUS_BASE, OPUSPY
# 03/04/03 46981_04 MSwam     Add CFITSIO_BASE, SOGS_DISK to path; STPYDB_DEBUG
# 03/07/03 46981_05 MSwam     Add bin/java to path
# 03/24/03 46981_06 MSwam     Rework IRAFDISK setting
# 05/29/03 46669_01 MSwam     Remove ACE/TAO definitions (files in OPUS dirs)
# 07/22/03 46669_02 MSwam     Work in branches for 49054, remove JLIB
# 10/21/03 49600    Sherbert  Add unlimit and change T64-isms to Solaris-isms
# 10/23/03 49600    Sherbert  Moved platform block to get override in path
# 10/27/03 49600    Sherbert  Remember: tufnel has a public iraf; smalls doesn't
# 01/22/04 49552    Sontag    Dynamically create OPUS_CLASSPATH env var
# 02/02/04 49554    Heller    Add DADS jar file to OPUS_CLASSPATH
# 02/05/04 49551    MSwam     Add OPUS_SERVER for Ingest req manager
# 03/29/04 50605    Sontag    Setup changes for 64-bit, and fix 'find' cmd,
#                             and CFITSIO_LIBS/CFITSIO_BASE are unused
# 07/12/04 51412    Sontag    Use omniORB 4.0.3 and ominORBpy 2.3
# 07/13/04 51412    MSwam     A few small tweaks to omniORB set-up
# 07/29/04 51412    MSwam     Add fitsdiff.py location to PATH
# 08/30/04 51412    MSwam     Update to pyssg_4_4 and adjust fitsdiff PATH
# 07/30/04 49860    Sontag    Updated location of IDL files in OMNIORBPY
# 09/16/04 51071    MSwam     Add utab definition for CDBS
# 11/08/04 52364    Sontag    Try to prevent overwitten core files
# 11/17/04 50663    MSwam     Update defaults to runtime_9_1 and pyssg_4_5 
# 12/21/04 50663    MSwam     Update to pyssg_4_6
# 02/01/05 52142    MSwam     Update to pyssg_4_7
# 02/09/05 52142    MSwam     Update to pyssg_4_8
# 04/04/05 51433    MSwam     Update to pyssg_4_9
# 04/06/05 51433    MSwam     Remove instrument "tab" directory variables
# 04/14/05 xxxxx    MSwam     CHANGE: now used by config generator tool
# 06/13/05 53120    Sontag    Add required env var SYBASE_32_FALLBACK
# 08/05/05 53337    Sontag    OPUS_CLASSPATH; wait for mustang; handle linux
# 12/01/05 54824    Sherbert  Remove pipe-spec subdirs from OPUS_DEFINITIONS_DIR
# 08/16/06 52625    MSwam     Add iref,lref
# 10/26/06 55743    Sontag    Allow flexibility with GCC versioning
# 03/26/07 57302    Sherbert  add dbms/tools to path if it exists
# 07/05/07 57074    Heller    move opustonsa.jar over to dads.
# 07/25/07 49671    MSwam     add select jars to OPUS_CLASSPATH from DADS
# 08/06/07 49671    MSwam     And now DADS_CLASSPATH (OPUS_CLASSPATH too long
#                               for AUTO environment)
# 09/12/07 55484    MSwam     Add SSG_PYROOT
# 11/21/07 58918    Sherbert  COS/WFC3 iraf updates
# 12/11/07 59094    MSwam     Sybase15, OSTDB3, Java5 changes
# 03/31/08 59478    Sherbert  Overwrite WARNING_OPUS_CLASSPATH_too_large file
# 08/21/08 60429    MSwam     Add SAADARK_CACHE
# 02/05/09 61861    MSwam     Changes to support 64-bit Python
# 03/13/09 62138    MSwam     few more tweaks to SSB set-up
# 10/20/09 63755    MSwam     use JAVAWILDCARD in OPUS_CLASSPATH 
#                               and DADS_CLASSPATH
# 12/23/09 64182    MSwam     tweaks for Linux
# 03/19/10 64273    MSwam     add LINUX_ISQL_ALIAS unless we can do better 
# 04/27/10 49175    MSwam     add REFFILE_SERVER,DB
# 05/24/10 64274    MSwam     allow CFITSIO shared library (Linux)
# 06/14/10 64274    MSwam     add bcp alias and adjust to common bcp/isql tool
# 07/27/10 57271    MSwam     add Perl:DBI debugging message settings
# 10/06/10 64432    MSwam     replace LINUX bcp,isql aliases with PATH addition
# 10/29/10 64432    Sherbert  Add DB_TYPE
# 01/10/11 66719    Sherbert  upgrade to secure shell
#
# 03/18/09 67669    Sherbert  Modify 3/13/09 2009.2 version for STIS ref pipe
# 03/23/11 67669    Sherbert  added SPSS_SERVER and other REFPIPE necessities
# 07/11/11 67669    Sherbert  add PYRAF_NO_DISPLAY 
# 08/18/11 67669    Sherbert  find'g switch'g PYTHONPATH ard helps w/overrides
# 02/21/12 70213    MSwam     add anyerror for desired tcsh behavior under RHEL6
#
#-----------------------------------------------------------------------------
#=================== BEGINNING OF USER-DEFINED VARIABLES =====================
#-----------------------------------------------------------------------------
# this TCSH variable gives us the desired error status return behavior in
# csh scripts under RHEL6 (see OPUS PR 70213 for details)
set anyerror
#
# translate UNIX platform name into heritage OPUS name (legacy from Jtools)
#
 set platform = `/bin/uname -p`
 if ($platform == "sparc") then
   setenv OUR_PLATFORM sparc_solaris
 else if ($platform == "x86_64") then
   setenv OUR_PLATFORM linux
   # needs to go in front to avoid picking up system-level unwanted isql tool
   setenv PATH _empty_LINUX_PATH_ADDONS:${PATH}
 else if ($platform == "i686") then
   setenv OUR_PLATFORM linux
   setenv PATH _empty_LINUX_PATH_ADDONS:${PATH}
 else
   setenv OUR_PLATFORM $platform
 endif

# root override area (now required)
#
# The following dir must contain subdirs /bin/sparc_solaris/ so it 
# will be added to path in foreach block below
 set overridebin = "_empty_OVERRIDE_ROOT"

 # Init default for REFPIPE_BASE will be /dev/null so majority of AUTO unaffected
 # BE SURE TO CHANGE config file once we get a real location up and running
 setenv REFPIPE_BASE _empty_REFPIPE_PATH
 setenv OPUS_BASE _empty_SCIENCE_PATH
 if ( -d ${REFPIPE_BASE} ) then
    setenv SOGS_DISK "${overridebin} ${REFPIPE_BASE} ${OPUS_BASE} "
 else
    setenv SOGS_DISK "${overridebin} ${OPUS_BASE} "
 endif

# definitions override area (now required)
#
 setenv ODD _empty_DEFS_ROOT
 setenv OPUS_DEFINITIONS_DIR "$ODD SOGS_DISK:/definitions/unix/ SOGS_DISK:/definitions/"
#
# location for PSTAT files and process log files
 setenv OPUS_HOME_DIR _empty_HOME_ROOT

#
# 3rd-party packages referenced more than once
#
 setenv OMNIORB_BASE _empty_OMNIORB_BASEDIR
 setenv CFITSIO_BASE _empty_CFITSIO_BASEDIR
 setenv CFITSIO_LIB ${CFITSIO_BASE}/lib/
#
# add SOGS_DISK entries to end of PATH if not already there and
# a bin/OUR_PLATFORM directory exists or 
# a bin/java subdirectory exists
#
 foreach i ($SOGS_DISK)
   foreach j ( bin bin/$OUR_PLATFORM  bin/java dbms/tools )
     set testdir = ${i}/${j}
     if (-d ${testdir}) then
       # make sure its not already in the path
       set atest = `echo $PATH | grep ${testdir}`
       if ($status == 1) then
         setenv PATH ${PATH}:${testdir}
       endif
     endif
   end
 end
# run-time library additions
 setenv OAPI_LIB ${OPUS_BASE}/lib/${OUR_PLATFORM}
#
# add to existing LD_LIBRARY_PATH
 setenv LD_LIBRARY_PATH ${OAPI_LIB}:${OMNIORB_BASE}/lib:${LD_LIBRARY_PATH}:${CFITSIO_LIB}
#
# === 64-bit settings, part 1 ===
if ($OUR_PLATFORM == "sparc_solaris") then
  set junk = _empty_CPP64_BASEDIR
  if ("$junk" == "FIND_ON_FLY") then
     # It is easier to use environ.s with varying gcc versions this way
     set junk = `gcc -print-search-dirs | grep '^install:' | sed 's/.*: //' | sed 's/\/$//'`
     set junk = $junk:h
     set junk = $junk:h
     set junk = $junk:h
     set junk = ${junk}/sparcv9
  endif
  if ( $?LD_LIBRARY_PATH_64 ) then
     # the generic LIB (awful name) is part of the .envrc package definition
     # that defines the runtime Sybase library location
     setenv LD_LIBRARY_PATH_64 "${junk}:${OAPI_LIB}:${OMNIORB_BASE}/lib:${LIB}:${LD_LIBRARY_PATH_64}:${CFITSIO_LIB}"
  else
     setenv LD_LIBRARY_PATH_64 "${junk}:${OAPI_LIB}:${OMNIORB_BASE}/lib:${LIB}:${CFITSIO_LIB}"
  endif
endif
# === end 64-bit ===
#
setenv DB_TYPE     _empty_DB_TYPE
setenv DSQUERY     _empty_DSQUERY
setenv OPUS_SERVER _empty_OPUS_SERVER
setenv OPUS_DB     _empty_OPUS_DB
setenv SPSS_SERVER _empty_SPSS_SERVER
setenv SPSS_DB     _empty_SPSS_DB
setenv ASSIST_DB   _empty_ASSIST_DB
setenv ARCH_SERVER _empty_ARCH_SERVER
setenv ARCH_DB     _empty_ARCH_DB
setenv CDBS_SERVER _empty_CDBS_SERVER
setenv CDBS_DB     _empty_CDBS_DB
setenv REFFILE_SERVER _empty_REFFILE_SERVER
setenv REFFILE_DB     _empty_REFFILE_DB
setenv KW_SERVER   _empty_KW_SERVER
setenv KW_DB       _empty_KW_DB
setenv REF_SERVER  _empty_REF_SERVER
setenv REF_DB      _empty_REF_DB 
#
# set the location of the SSG (IRAF,STSDAS, PYRAF) software (the new way)
#
setenv IRAFARCH $platform
if (${IRAFARCH} == "sparc") then
  # adjustment for Solaris
  setenv IRAFARCH ssun
endif
if (${IRAFARCH} == "x86_64") then
  # adjustment for Linux
  setenv IRAFARCH redhat
endif

set whichiraf     = _empty_SSB_VERSION
set whichiraftree = _empty_IRAF_BASEDIR
set ssb_stuff     = ${whichiraftree}/${whichiraf}
source ${ssb_stuff}/config.csh
#
#
setenv SSGROOT    ${whichiraftree}/${whichiraf}
setenv IRAFDISK   $iraf
setenv STSDASDISK ${SSGROOT}/stsdas/
setenv TABLESDISK ${SSGROOT}/tables/
setenv STLOCAL    ${SSGROOT}/stlocal/
#
# Try to prevent errors in refpipe when you exit a window from which you started a 
# refpipe process
#
setenv PYRAF_NO_DISPLAY do_not_fail_if_X_goes_away
#
# set PYTHONPATH for refxxx pipeline tasks and append to existing value
#
setenv STDBPY _empty_STPYDB_BASEDIR
setenv OMNIORBPY ${OMNIORB_BASE}/lib/python_empty_OMNIORB_PYVERSION/site-packages:${OMNIORB_BASE}/_empty_OMNIORB_OPUSVERSION
setenv PYTHONPATH ${STDBPY}:${OMNIORBPY}:${PYTHONPATH}

 #  Add to PYTHONPATH stuff that would otherwise be repetitive
 ## Isn't it fortuitous that SOGS_DISK works so nicely?
 ## It's: override, ref, opus
 foreach i ( $SOGS_DISK )
   foreach j ( bin/$OUR_PLATFORM )
     set testdir = ${i}/${j}
     if (-d ${testdir}) then
       # make sure its not already in the path
       set atest = `echo ${PYTHONPATH} | grep ${testdir}`
       if ($status == 1) then
         setenv PYTHONPATH ${PYTHONPATH}:${testdir} 
       endif
     endif
   end
 end

#
setenv JCONN_JARPATH _empty_JCONN_JARPATH
#
# Build OPUS_CLASSPATH for Java tasks.  Now uses -classpath wildcarding
#   to workaround a variable length problem.
#
setenv OPUS_CLASSPATH ""
foreach sd ($SOGS_DISK)
   set junk = `/usr/bin/test -d ${sd}/bin/java && find ${sd}/bin/java -name '[A-GI-Za-z]*.jar'`
   set last_jf_dir = nuttin
   foreach jf ($junk)
      # trim off the filename, leaving just the dir name
      set jf_dir = $jf:h/
      if ($jf_dir != $last_jf_dir) then
         setenv OPUS_CLASSPATH "${OPUS_CLASSPATH}:${jf_dir}JAVAWILDCARD"
      endif
      set last_jf_dir = $jf_dir
   end
end
setenv OPUS_CLASSPATH "${JCONN_JARPATH}${OPUS_CLASSPATH}"
#
# Add DADS libraries to classpath for INGEST pipeline and fastrak
setenv DADS_CLASSPATH _empty_DADS_BASEDIR/JAVAWILDCARD
#
# set the reference file paths
setenv REFROOT _empty_REF_BASEDIR
#
setenv SAADARK_CACHE _empty_SAADARK_CACHE
#
# ACS reference files
setenv jref        ${REFROOT}/acs/
setenv cracscomp   ${REFROOT}/thu/
# WF2 reference files
setenv mtab        ${REFROOT}/mul/
setenv ttab        ${REFROOT}/thu/
setenv crwfpc2comp ${REFROOT}/thu/
setenv crotacomp   ${REFROOT}/thu/
setenv uref        ${REFROOT}/wf2/
# STIS reference files
setenv oref        ${REFROOT}/stis/
# NIC  reference files
setenv nref        ${REFROOT}/nic/
# WFC3 reference files
setenv iref        ${REFROOT}/wfc3/
setenv crwfc3comp  ${REFROOT}/thu/
# COS reference files
setenv lref        ${REFROOT}/cos/
setenv crcoscomp   ${REFROOT}/thu/
#
#
# Set location of rsh or ssh and rcp/scp
setenv OPUS_REMOTE_SHELL /usr/bin/ssh         # path to ssh or rsh 
setenv OPUS_REMOTE_COPY  /usr/bin/scp         # path to rcp or scp 
#
#-----------------------------------------------------------------------------
#
#set fxlogin = `osfile_stretch_file SOGS_DISK:/com/fxlogin.csh`
#source $fxlogin
set findMe = "SOGS_DISK:/dat/testbed.ver"
## unset messaging, otherwise doesn't work
set version_file = `unsetenv MSG_REPORT_LEVEL; python -c "import osfile_stretch ; it=osfile_stretch.findOne ( '${findMe}' ); print it" `
if ( ${version_file} != "" ) then
    set noglob
    set val = `/bin/cat $version_file | /bin/awk '{for(i=1;i<=NF;i++) printf $i" "}'`
    setenv OPUS_VERSION "$val"
    unset noglob
else
    echo "ERROR: could NOT find version file :( "
endif

#
## location for default X-resource files (pmg and omg)
setenv XUSERFILESEARCHPATH $HOME/%N.dat
##
## Possible report levels (uncomment as needed).  Default is MSG_INFO.
## Available levels: MSG_DIAG MSG_INFO MSG_WARN MSG_ERROR MSG_FATAL 
##                   MSG_ALL  MSG_NONE
##
# setenv MSG_REPORT_LEVEL MSG_ALL
# setenv MSG_TRL_REPORT_LEVEL MSG_ALL
#
## for omniORB messages (10=minimal, 40=maximum)
# setenv ORBtraceLevel 40
#
## DEBUGGING for Python tasks using STPYDB database interface
# setenv STPYDB_DEBUG '#db#'
# setenv STPYDB_DEBUG_FILE file_for_debug_msgs
##
## Possible database report levels (uncomment as needed).  Default is STDB_ERR.
## (only see output when there is an error).  See OSTDB2.0 manual for info.
## If STDB_REPORT_FILE is not defined, messages go into process log file (good).
## Known available levels: STDB_INFO   STDB_STAT   STDB_WARN   STDB_ERR
##
# setenv STDB_REPORT_LEVEL STDB_INFO
# setenv STDB_REPORT_FILE "<eg. $OPUS_HOME_DIR/stdb_info.out>"
#
## Perl DBI database debugging messages:
## (can use levels 1-5, 1=least extreme, 5=most extreme, and an optional
##  filename can be provided as well, otherwise STDERR is used)
#setenv DBI_TRACE 1
#setenv DBI_TRACE 2=perlDBI.msgs
#
## Define any variables that you want to stretch through your local area.
#
setenv OPUS_SORT_FILES anything ## To alphabetically search for files to process 
# setenv NETCOPY_DEBUG on       ## Be careful: writes passwords to a file
#
# try to keep core files from overwriting previous ones
if ($OUR_PLATFORM == "sparc_solaris") then
  /usr/bin/coreadm -p "core.%p" $$
endif
#
# Set unlimited process resources
unlimit
# NEEDED to override SSB setting, which on smalls can can isql to CRASH (?!)
#   but has NO AFFECT on tufnel (??)
if ($OUR_PLATFORM == "sparc_solaris") then
  setenv SYBASE /usr/local/syb_15_64bit
endif
#====================== END OF USER-DEFINED VARIABLES =========================
#
#====================== OPUS_LOGIN completed.  ===============================
## 
