#!/bin/sh
###########################################################################
# Installationsprozedur fuer SISCAD-P
# Copyright (c) 1993, 1994 Staedtler Mars GmbH & Co - GB Informationssysteme
###########################################################################
# %W% of %G%
# 11.02.94/Streitmatter

SISCADPARCHIVE=`ls siscad*.tar.*`

VERSION=`echo ${SISCADPARCHIVE}| sed -e 's|siscadp||' -e 's|\(.*\)\.tar.*|\1|'`

INSTALLBASE=/usr/siscadp${VERSION}
BACKUPDIR=/usr/siscadp.bak             # hier wird alles gesichert was 
                                       # neuer ist als das LOGFILE der
                                       # bereits installierten Version 
SISCAD_HOME=/usr/siscadp               # wird symlink auf installierte Vers.
LOGFILE=${SISCAD_HOME}/install.log     # protokollfile zur Installation

SISSTARTER=/usr/siscadp/exe/start
SISBINFILES="siscadp "
BINDIR=/usr/bin

SIZEFILE=.siscad_size                  # SISCAD-P Groesse im Installdir.

SOURCEDIR=`pwd`

LNCMD="ln -sf "                        # symlink Kommando

PATH=${PATH}:/usr/lbin
export PATH

# 
# Hilfsfunktionen
#

antwort()
{
        echo  "$1 " ; read $2
}
 
auswahl()
{
        echo "Ihre Wahl > \c" ; read $2
}
 
weiter_mit_cr()
{
        antwort "Weiter mit RETURN" dummy
}


askyn() {
    while true
    do
      read x
      case ${x} in
            [jJyY]) return 0 ;;
                "") return 0 ;;
            [nN])   return 1 ;;
            *)      echo  "Bitte antworten Sie mit j/n : "
      esac
   done
}
 
stopMsg() { echo "Installation wurde abgebrochen !" ;
            echo $1 ;
            exit 1 ;
           }

is_root()
{ 
ID=`id | grep root`

if [ "${ID}" = "" ]
then
   stopMsg "Dieses Programm kann nur als ROOT ausgefuehrt werden"
fi
}

select_instdir()    # out INSTALLBASE
{
   echo "SISCAD-P Groesse im Installationsverzeichnis wird bestimmt .." 
   zcat ${SOURCEDIR}/${SISCADPARCHIVE} | tar xvf -  ${SIZEFILE} >/dev/null
   SIZE=`cat ${SIZEFILE}`
   rm ${SIZEFILE}

   while true
   do
      echo "Festplattenplatz Uebersicht:"
      echo
      df
      echo
      echo "SISCAD-P benotigt ${SIZE} KByte im Installationsverzeichnis"
      echo "Installationsverzeichnis=${INSTALLBASE} 

Falls Sie SISCAD-P in einem anderen Verzeichnis installieren
wollen, geben Sie jetzt das gewuenschte Installationsverzeichnis ein
oder RETURN fuer ${INSTALLBASE}
"; 
      read dummy

      if [ "${dummy}" != "" ]
      then 
         INSTALLBASE=${dummy}
      fi
      echo  "Ist das Verzeichnis ${INSTALLBASE} ok ? (j/n)" ; 
      askyn && { 
               break ; } ;
   done
}

backup_changed()
{
CWD=`pwd`
  if [ -f ${LOGFILE} ]
  then
    if [ ! -d  ${BACKUPDIR} ]
    then
      mkdir ${BACKUPDIR}
    fi
    cd ${SISCAD_HOME}
    echo Geaenderte Daten der alten Version werden in ${BACKUPDIR} gesichert ...
    echo
    # Alles sichern was Kunde seit der Installation eventuell
    # geaendert haben koennte jedoch nicht sollte !!!!
    FILES2SAVE=`find . -newer ${LOGFILE} -print`
    if [ ! -z "${FILES2SAVE}" ]
    then
      tar cf - `echo ${FILES2SAVE}` | (cd ${BACKUPDIR}; tar xvf -) ||\
      stopMsg "Fehler beim Sichern der Dateien" 
    fi 
cd ${CWD}
    echo ${SISCAD_HOME} wird geloescht
    rm -rf ${SISCAD_HOME} 2>&1 >/dev/null
  else
    echo Erstinstallation, keine Daten zu sichern ... 
  fi 
}

#
# Beginn der SISCAD-P Installation
#


clear

is_root

echo  "


    Installation fuer Staedtlers


    #####   ###   #####    #####      #     ######            ######
   #     #   #   #     #  #     #    # #    #     #           #     #
   #         #   #        #         #   #   #     #           #     #
    #####    #    #####   #        #     #  #     #   #####   ######
         #   #         #  #        #######  #     #           #
   #     #   #   #     #  #     #  #     #  #     #           #
    #####   ###   #####    #####   #     #  ######            #

   Version ${VERSION}

   Soll die Installation fortgesetzt werden ? (j/n) "

askyn || stopMsg " " 

clear
select_instdir

backup_changed

echo "${INSTALLBASE} wird neu angelegt "

mkdir  ${INSTALLBASE} 

echo "SISCAD-P Dateien werden angelegt"

cd ${INSTALLBASE}
zcat ${SOURCEDIR}/${SISCADPARCHIVE} | tar xvf - ||\
     stopMsg "Fehler beim Anlegen der Dateien" 


if [ ${SISCAD_HOME} = ${INSTALLBASE} ]
then
	:
else
	echo Link ${INSTALLBASE} nach ${SISCAD_HOME}
	${LNCMD} ${INSTALLBASE} ${SISCAD_HOME}
fi 

for i in ${SISBINFILES}
do
   echo Link ${SISSTARTER} nach ${BINDIR}/${i}
   ${LNCMD} ${SISSTARTER} ${BINDIR}/${i}
done

cd ${SOURCEDIR}
echo "
Falls Sie keine weiteren Installationen dieser Version durchfuehren, 
so koennen Sie jetzt ${SISCADPARCHIVE} und install loeschen. 

Wollen Sie ${SISCADPARCHIVE} und install loeschen ? (j/n) "
askyn && rm ${SISCADPARCHIVE} install 

clear

echo "

    Die Installation von  


    #####   ###   #####    #####      #     ######            ######
   #     #   #   #     #  #     #    # #    #     #           #     #
   #         #   #        #         #   #   #     #           #     #
    #####    #    #####   #        #     #  #     #   #####   ######
         #   #         #  #        #######  #     #           #
   #     #   #   #     #  #     #  #     #  #     #           #
    #####   ###   #####    #####   #     #  ######            #

   Version ${VERSION}

   wurde erfolgreich abgeschlossen. Um mit SISCAD-P zu arbeiten, gehen Sie
   wie folgt vor:
    
   o SISCAD-P lizenzieren
   o SISCAD-P Benutzer einrichten
   o Drucker und Plotter einrichten
   o SISCAD-P als SISCAD-P Benutzer mit 'siscadp' starten  

   Weitere Einzelheiten dazu finden Sie in Ihrer Inbetriebnahmeanleitung.
   Siehe /usr/siscadp/dok/install*

"
