#!/bin/sh
#       @(#)start	1.21 of 6/12/95
#
#       Copyright (c) 1993, 1994, 1995
#       Staedtler Mars GmbH & Co

# ------------------------------- DEUTSCH --------------------------------
# Dieses Shellscript definiert notwendige Systemvariablen fuer SIS Programme
# und startet anschliessend ein solches Programm. Der Name des zu startenden
# SIS-Programmes wird aus dem Namen des Aufrufs gebildet.
#
# Damit dies fuer  alle Programme funktioniert,  werden bei der Installation 
# symbolische Links in  /usr/bin mit den Programmnamen gebildet, welche alle
# auf dieses Shellscript zeigen.
#  
# Ausgangspunkt  fuer  die  Definition  der  Systemvariablen  ist  die Datei 
# siscad.env  im Verzeichnis  ${SISCAD_HOME}.
# In den gleichnamigen Dateien siscad.env ${PRIVAT_HOME} bzw. ${GLOBAL_HOME}
# koennen Systemvariablen umdefiniert werden.
# Die Datei  siscad.env im Verzeichnis ${PRIVAT_HOME} hat dabei die hoechste
# Prioritaet, da sie als letzte aufgerufen wird, wenn Sie vorhanden ist.

# ------------------------------- ENGLISH --------------------------------
# This script defines the SIS environment and is used to start SIS 
# programs. The name of the program to be started is build from the name
# of the calling script.
# 
# To make this work, during the installation time ther will be made 
# symbolic links with the name of SIS binaries which point to this script.
#
# The starting point for the definition of the SIS environment is the 
# file siscad.env living in the directory defined by ${SISCAD_HOME}.
# Further environment definitions/redefinitions can be made in siscad.env    
# available in the directories defined by ${PRIVAT_HOME} or  ${GLOBAL_HOME}.
# siscad.env in ${PRIVAT_HOME} has the highest priority.

####################
init_text_messages() 
####################
{
case $SISLANGUAGE in

DEUTSCH)
TXT_CONTINUE="Weiter mit RETURN"
TXT_CHKVERS="Bitte ueberpruefen Sie die Installation von SISCAD-P"
TXT_CONTABORT="Weiter mit RETURN, Abbruch mit Ctrl-C bzw. Entf "
TXT_USAGE="Aufruf"
TXT_SYMLINK="ist ein symbolischer Link auf dieses Skript"
TXTCMD_WELCOME=TXTCMD_WELCOME_DE
TXTCMD_WELCOMEG=TXTCMD_WELCOMEG_DE
TXT_GLOBALOK="Das globale Verzeichnis ${GLOBAL_HOME} ist bereits aktuell"
TXTCMD_SETUPG=TXTCMD_SETUPG_DE
TXT_ENV="Systemumgebung"
TXTCMD_DEFAULTS=TXTCMD_DEFAULTS_DE
TXT_NOTFOUND="nicht gefunden"
;;

ENGLISH)
TXT_CONTINUE="Press RETURN to continue"
TXT_CHKVERS="Please check correct installation of SISCAD-P"
TXT_CONTABORT="Continue with RETURN or Ctrl-C / Del to abort "
TXT_USAGE="Usage"
TXT_SYMLINK="is a symlink to this script"
TXTCMD_WELCOME=TXTCMD_WELCOME_EN
TXTCMD_WELCOMEG=TXTCMD_WELCOMEG_EN
TXT_GLOBALOK="The directory ${GLOBAL_HOME} is already up to date"
TXTCMD_SETUPG=TXTCMD_SETUPG_EN
TXT_ENV="environment"
TXTCMD_DEFAULTS=TXTCMD_DEFAULTS_EN
TXT_NOTFOUND="not found"
;;
esac
}

TXTCMD_WELCOME_DE()
{
cat <<END
Willkommen zu SISCAD-P ${INST_VERSION}

Sie haben SISCAD-P zum erstem mal aufgerufen bzw. eine neue SISCAD-P
Version wurde auf Ihrem System installiert. 
END
}

TXTCMD_WELCOME_EN()
{
cat <<END
WELCOME to SISCAD-P ${INST_VERSION}

This is the first time you've started SISCAD-P or there has been 
installed a new version of SISCAD-P on your system.
END
}

TXTCMD_WELCOMEG_DE()
{
cat <<END
Willkommen zu SISCAD-P ${INST_VERSION}

Das Verzeichnis ${GLOBAL_HOME} wird fuer SISCAD-P neu eingerichtet bzw.
fuer die neue SISCAD-P Version aktualisiert.
END
}

TXTCMD_WELCOMEG_EN()
{
cat <<END
WELCOME to SISCAD-P ${INST_VERSION}

The directory ${GLOBAL_HOME} will be created or updated for your 
new SISCAD-P version.
END
}

TXTCMD_SETUPG_DE()
{
    cat <<EOT
WARNUNG: Fuer diese SISCAD-P ${INST_VERSION} wurden im globalen
         Verzeichnis ${GLOBAL_HOME} noch nicht die notwendigen
         Anpassungen durchgefuehrt.
         Starten Sie dazu

              ${cadexe}/setup_global

         als priviligierter Benutzer (root) 
EOT
}

TXTCMD_SETUPG_EN()
{
    cat <<EOT
WARNING: The gloabal directory ${GLOBAL_HOME} has not been updated 
         for the installed SISCAD-P ${INST_VERSION}. 
         Please start the script 

              ${cadexe}/setup_global

         as priviledged user (root) 
EOT
}

TXTCMD_DEFAULTS_DE()
{
cat <<EOT
SISCAD-P Bibliotheksverzeichnis          = ${cadlib}
SISCAD-P Drucker+Plotter Definitionen    = ${PLOTSTR}
SISCAD-P Voreinstellungen (XENVIRONMENT) = ${XENVIRONMENT}

${SISCAD_PROG} wurde gestartet !
EOT
}

TXTCMD_DEFAULTS_EN()
{
cat <<EOT
SISCAD-P library_path                  = ${cadlib}
SISCAD-P printer+plotter (definitions) = ${PLOTSTR}
SISCAD-P defaults       (XENVIRONMENT) = ${XENVIRONMENT}

${SISCAD_PROG} started !
EOT
}



echo_nl()
{
  case ${OS} in
    IRIX   ) echo "$1 \c" ;;
    *      ) echo -n "$1" ;;
  esac
}

check_version()
{
  echo $TXT_CHKVERS 
  echo
  echo_nl "$TXT_CONTINUE "
  read dummy 
  exit 0
}

weiter_mit_cr()
{
  echo
  echo_nl "$TXT_CONTABORT "
  read dummy
}

SISCAD_PROG=`basename $0`
SISCAD_ENVFILE=siscad.env
SISCAD_DEFFILE=siscadp.def
TREIBER_FILE=plotstr.sys
SISCAD_HOME=/usr/siscadp   ; export SISCAD_HOME

SISLANGUAGE=ENGLISH        # setup default language 
init_text_messages

if [ "${SISCAD_PROG}" = "start" ]
then
  echo $TXT_USAGE: sisprogram [ -d ] [ args ]
  echo        $TXT_SYMLINK
  exit 1
fi 

# 1. SISCAD standard Umgebungsvariablen werden gesetzt. 

if [ -f ${SISCAD_HOME}/sys/${SISCAD_ENVFILE} ]
then 
  . ${SISCAD_HOME}/sys/${SISCAD_ENVFILE}
  init_text_messages
else
  echo ${SISCAD_HOME}/sys/${SISCAD_ENVFILE} not found
  check_version
fi

# 2. GLOBAL_HOME Umgebungsvariablen, falls vorhanden 

if [ "${SISCAD_PROG}" != "setup_global" ]
then
  setup_global=0
else
  setup_global=1
fi

if [ -f ${GLOBAL_HOME}/sys/${SISCAD_ENVFILE} ]
then 
  . ${GLOBAL_HOME}/sys/${SISCAD_ENVFILE}
fi 


# 3. PRIVAT_HOME Umgebungsvariablen, falls vorhanden 

if [ ${setup_global} = 0 ]
then
  if [ -f ${PRIVAT_HOME}/sys/${SISCAD_ENVFILE} ]
  then
    . ${PRIVAT_HOME}/sys/${SISCAD_ENVFILE}
  fi
fi


# 4. Start setup_user bzw setup_global, falls 1. Aufruf oder neue Version

INSTLOG=${SISCAD_HOME}/.version        # SISCAD version
USEGLOG=${GLOBAL_HOME}/.version        # global version  
USEDLOG=${PRIVAT_HOME}/.version        # Users version  

if [ -f ${INSTLOG} ]
then
  INST_VERSION=`fgrep VERSION= ${INSTLOG} `
  USED_VERSION=`fgrep VERSION= ${USEDLOG} 2>/dev/null`
  USEG_VERSION=`fgrep VERSION= ${USEGLOG} 2>/dev/null`
else
  echo ${INSTLOG} not found
  check_version
fi

if [ ${setup_global} = 0 ]
then
  if [ "${INST_VERSION}" != "${USED_VERSION}" ]
  then
    $TXTCMD_WELCOME
    ${cadexe}/setup_user
    exit 0
  fi
else
  if [ "${INST_VERSION}" != "${USEG_VERSION}" ]
  then
    $TXTCMD_WELCOMEG
    ${cadexe}/setup_user -g
  else
    echo $TXT_GLOBALOK 
  fi
  exit 0
fi

if [ -d ${GLOBAL_HOME} ]
then
  if [ "${INST_VERSION}" != "${USEG_VERSION}" ]
  then
    $TXTCMD_SETUPG
    weiter_mit_cr
  fi
fi



# 5. SISCAD-P Application Default Einstellungsdatei setzen

XENVIRONMENT=${SISCAD_HOME}/sys/${SISCAD_DEFFILE}

if [ -f ${GLOBAL_HOME}/sys/${SISCAD_DEFFILE} ]
then 
   XENVIRONMENT=${GLOBAL_HOME}/sys/${SISCAD_DEFFILE}
fi 

if [ -f ${PRIVAT_HOME}/sys/${SISCAD_DEFFILE} ]
then
   XENVIRONMENT=${PRIVAT_HOME}/sys/${SISCAD_DEFFILE}
fi

export XENVIRONMENT 



# 6. SISCAD-P Library-Path setzen

LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${SISCAD_HOME}/lib"

export LD_LIBRARY_PATH


# 7. Start SIS Programm 

if [ "$1" = -d ]    # debug mode
then

  shift

  PLOTSTR=${SISCAD_HOME}/sys/${TREIBER_FILE}

  if [ -f ${GLOBAL_HOME}/sys/${TREIBER_FILE} ]
  then 
     PLOTSTR=${GLOBAL_HOME}/sys/${TREIBER_FILE}
  fi 

  if [ -f ${PRIVAT_HOME}/sys/${TREIBER_FILE} ]
  then
     PLOTSTR=${PRIVAT_HOME}/sys/${TREIBER_FILE}
  fi

  cat <<END

SISCAD-P $TXT_ENV :

SISCAD_HOME  = ${SISCAD_HOME}
PRIVAT_HOME  = ${PRIVAT_HOME}
GLOBAL_HOME  = ${GLOBAL_HOME}
GLOBAL1_HOME = ${GLOBAL1_HOME}
GLOBAL2_HOME = ${GLOBAL2_HOME}
GLOBAL3_HOME = ${GLOBAL3_HOME}
GLOBAL4_HOME = ${GLOBAL4_HOME}
GLOBAL5_HOME = ${GLOBAL5_HOME}

owndxf = ${owndxf}
ownicn = ${ownicn}
ownstl = ${ownstl}
ownsys = ${ownsys}
ownzne = ${ownzne}

glbdxf = ${glbdxf}
glbicn = ${glbicn}
glbstl = ${glbstl}
glbsys = ${glbsys}
glbzne = ${glbzne}

caddb  = ${caddb}
caddok = ${caddok}
caddxf = ${caddxf}
cadetc = ${cadetc}
cadexe = ${cadexe}
cadfel = ${cadfel}
cadfnt = ${cadfnt}
cadhis = ${cadhis}
cadicn = ${cadicn}
cadlib = ${cadlib}
cadmod = ${cadmod}
cadplt = ${cadplt}
cadprj = ${cadprj}
cadred = ${cadred}
cadstl = ${cadstl}
cadsys = ${cadsys}
cadtut = ${cadtut}
caduid = ${caduid}
cadzne = ${cadzne}

SISCAD_RED  = ${SISCAD_RED}
PRIVAT_RED  = ${PRIVAT_RED}
GLOBAL_RED  = ${GLOBAL_RED}
GLOBAL1_RED = ${GLOBAL1_RED}
GLOBAL2_RED = ${GLOBAL2_RED}
GLOBAL3_RED = ${GLOBAL3_RED}
GLOBAL4_RED = ${GLOBAL4_RED}
GLOBAL5_RED = ${GLOBAL5_RED}

SISCAD_HIS = ${SISCAD_HIS}
PRIVAT_HIS = ${PRIVAT_HIS}
GLOBAL_HIS = ${GLOBAL_HIS}

SISCAD_FEL = ${SISCAD_FEL}
PRIVAT_FEL = ${PRIVAT_FEL}
GLOBAL_FEL = ${GLOBAL_FEL}

SISCAD_MOD = ${SISCAD_MOD}
PRIVAT_MOD = ${PRIVAT_MOD}
GLOBAL_MOD = ${GLOBAL_MOD}

SISCAD_PRJ = ${SISCAD_PRJ}
PRIVAT_PRJ = ${PRIVAT_PRJ}
GLOBAL_PRJ = ${GLOBAL_PRJ}

SISCAD_ZNE = ${SISCAD_ZNE}
PRIVAT_ZNE = ${PRIVAT_ZNE}
GLOBAL_ZNE = ${GLOBAL_ZNE}

SISLANGUAGE = ${SISLANGUAGE}
WWWBROWSER  = ${WWWBROWSER}

END
$TXTCMD_DEFAULTS
fi

cd ${PRIVAT_HOME}
if [ -f ${cadexe}/${SISCAD_PROG} ]
then
  if ${cadexe}/${SISCAD_PROG} $*
  then
    :
  else
    weiter_mit_cr
  fi
else
  echo ${cadexe}/${SISCAD_PROG} $TXT_NOTFOUND 
  check_version
fi
