Files
oldlinux-files/ftp-archives/tsx-11.mit.edu/1996-10-07/packages/cad/siscadp-install.sh
2024-02-19 00:24:15 -05:00

419 lines
10 KiB
Bash

#!/bin/sh
###########################################################################
# Installationsprozedur fuer SISCAD-P
# Copyright (c) 1993-1995 STAEDTLER MARS GmbH & Co
###########################################################################
# @(#)install 1.21 of 7/28/95
SISCADPARCHIVE=`ls siscadp-*.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
SELECT_LANGUAGE=/usr/siscadp/exe/sislanguage
SISSTARTER=/usr/siscadp/exe/start
SISBINFILES="siscadp"
BINDIR=/usr/bin
##############
set_language() # ask for SISLANGUAGE and set it to DEUTSCH or ENGLISH
##############
{
cat <<EOT
SISCAD-P Installation
~~~~~~~~~~~~~~~~~~~~~
Please select the language for which you like to install SISCAD-P
Bitte waehlen Sie die Sprache in welcher Sie SISCAD-P installieren wollen
EOT
while true
do
echo_nl " d = DEUTSCH e = ENGLISH : "
read x
case ${x} in
[dD] ) SISLANGUAGE=DEUTSCH; export SISLANGUAGE; break ;;
[eE] ) SISLANGUAGE=ENGLISH; export SISLANGUAGE; break ;;
* ) continue ;;
esac
done
}
####################
init_text_messages()
####################
{
case $SISLANGUAGE in
DEUTSCH)
TXT_CONTINUE="Weiter mit RETURN"
TXT_ANSWERYN="Bitte antworten Sie mit j/n : "
TXT_INSTABORT="Installation wurde abgebrochen !"
TXT_EXECROOT="Dieses Programm kann nur als ROOT ausgefuehrt werden"
TXT_SISSIZE="SISCAD-P Groesse im Installationsverzeichnis wird ermittelt ..."
TXT_DISKOVERVIEW="Festplattenplatz Uebersicht:"
TXT_SISKB1="SISCAD-P benotigt "
TXT_SISKB2="KByte im Verzeichnis "
TXT_INSTDIR1="Falls Sie SISCAD-P in einem anderen Verzeichnis installieren wollen,"
TXT_INSTDIR2="geben Sie jetzt das gewuenschte Installations-Verzeichnis ein oder"
TXT_INSTDIR3="RETURN fuer"
TXT_INSTDIR="Installations-Verzeichnis ? "
TXT_YESNO="[j/n]"
TXT_BUPDIR1="Das Sicherungs-Verzeichnis"
TXT_BUPDIR2="wird neu angelegt"
TXT_SAVEOLD="Sichern modifizierter Daten der alten Version in"
TXT_SAVEERR="Fehler beim Sichern der Dateien"
TXT_REMOVED="wird geloescht"
TXT_DIR="Das Verzeichnis"
TXT_CREATING="wird neu angelegt"
TXT_SISCREATE="SISCAD-P Dateien werden angelegt"
TXT_CREATEERR="Fehler beim Anlegen der Dateien"
TXT_INSTEND1="Falls Sie keine weiteren Installationen dieser Version durchfuehren wollen,"
TXT_INSTEND2="so koennen Sie jetzt"
TXT_INSTEND3="und install loeschen."
TXT_DOYOULIKE="Wollen Sie"
TXT_INSTALLRM="und install jetzt loeschen"
TXT_WELCOME="Willkommen bei der Installation von STAEDTLER's"
TXT_CONTINST="Soll die Installation fortgesetzt werden ?"
TXTCMD_SUCCESS=TXTCMD_SUCCESS_DE
;;
ENGLISH)
TXT_CONTINUE="Press RETURN to continue"
TXT_ANSWERYN="Please answer with y/n : "
TXT_INSTABORT="Installation aborted !"
TXT_EXECROOT="This program can be executed as ROOT only"
TXT_SISSIZE="Evaluating SISCAD-P size .."
TXT_DISKOVERVIEW="Disk space overview:"
TXT_SISKB1="SISCAD-P needs "
TXT_SISKB2="KByte in directory "
TXT_INSTDIR1="If you wish to install SISCAD-P in another directory then"
TXT_INSTDIR2="enter your favorite directory or"
TXT_INSTDIR3="press RETURN for"
TXT_INSTDIR="Install-directory ? "
TXT_YESNO="[y/n]"
TXT_BUPDIR1="Backup directory"
TXT_BUPDIR2="will be created"
TXT_SAVEOLD="Saving modified files of the old version"
TXT_SAVEERR="Error while saving files occured"
TXT_REMOVED="removing"
TXT_DIR="directory"
TXT_CREATING="created"
TXT_SISCREATE="Creating SISCAD-P files"
TXT_CREATEERR="Error while creating files occured"
TXT_INSTEND1="If you don't like to install further copies of this version,"
TXT_INSTEND2="then"
TXT_INSTEND3="and install can now be removed."
TXT_DOYOULIKE="Do you like"
TXT_INSTALLRM="and install to be removed now"
TXT_WELCOME="Welcome to the installation of STAEDTLER's"
TXT_CONTINST="Do you like to continue with the installation ?"
TXTCMD_SUCCESS=TXTCMD_SUCCESS_EN
;;
esac
}
TXTCMD_SUCCESS_DE()
{
cat <<EOT
wurde erfolgreich abgeschlossen. Um mit SISCAD-P zu arbeiten, gehen Sie
wie folgt vor:
o SISCAD-P Dokumentation installieren
o SISCAD-P Copyright und Lizenzbestimmungen lesen
o SISCAD-P Benutzer einrichten
o Drucker und Plotter einrichten
o als SISCAD-P Benutzer SISCAD-P mit '/usr/bin/siscadp' starten
Weitere Einzelheiten dazu finden Sie in der
'SISCAD-P Inbetriebnahmeanleitung' -- /usr/siscadp/dok/install*
EOT
}
TXTCMD_SUCCESS_EN()
{
cat <<EOT
has been successfully installed. Before starting your work with SISCAD-P,
please do the following:
o install the SISCAD-P online documentation
o read the SISCAD-P copyright and license polices
o install a SISCAD-P user account
o configure printer and plotter devices
o as SISCAD-P user start SISCAD-P with '/usr/bin/siscadp'
Further details to these steps above you can find in the
'SISCAD-P Installation Guide' -- /usr/siscadp/dok/install*
EOT
}
OS=`uname -s`
case ${OS} in
Linux |\
IRIX ) TARPREFIX="" ;;
* ) TARPREFIX="./" ;;
esac
case ${OS} in
SunOS ) LNCMD="/usr/5bin/ln -fs" ;;
* ) LNCMD="ln -fs" ;;
esac
case ${OS} in
AIX ) TEST_LN="-L" ;;
IRIX ) TEST_LN="-l" ;;
* ) TEST_LN="-h" ;;
esac
SIZEFILE=${TARPREFIX}.siscad_size # SISCAD-P Groesse im Installdir.
SOURCEDIR=`pwd`
PATH=${PATH}:/usr/lbin
export PATH
#
# Hilfsfunktionen
#
echo_nl()
{
case ${OS} in
IRIX ) echo "$1 \c" ;;
* ) echo -n "$1" ;;
esac
}
antwort()
{
echo_nl "$1 " ; read $2
}
weiter_mit_cr()
{
antwort $TXT_CONTINUE dummy
}
askyn()
{
while true
do
read x
case ${x} in
[jJyY] ) return 0 ;;
"" ) return 1 ;;
[nN] ) return 1 ;;
* ) echo_nl "$TXT_ANSWERYN"
esac
done
}
stopMsg()
{
echo $TXT_INSTABORT
echo $1
exit 1
}
is_root()
{
ID=`id | grep root`
if [ "${ID}" = "" ]
then
stopMsg "$TXT_EXECROOT"
fi
}
select_instdir() # out INSTALLBASE
################
{
echo $TXT_SISSIZE
#zcat ${SOURCEDIR}/${SISCADPARCHIVE} | tar xf - ${SIZEFILE} >/dev/null
SIZE=25329
#rm ${SIZEFILE}
while true
do
echo
echo $TXT_DISKOVERVIEW
echo
df
echo "
$TXT_SISKB1 ${SIZE} $TXT_SISKB2 ${INSTALLBASE}
$TXT_INSTDIR1
$TXT_INSTDIR2
$TXT_INSTDIR3 ${INSTALLBASE}
"
echo_nl "$TXT_INSTDIR [${INSTALLBASE}] : "
read dummy
if [ "${dummy}" != "" ]
then
INSTALLBASE="${dummy}"
fi
echo_nl "$TXT_INSTDIR ${INSTALLBASE} ok ? $TXT_YESNO : " ;
askyn && {
break ; } ;
done
}
check_oldversion() # rm old SISCAD-P version ; save modified files
##################
{
if [ -f ${LOGFILE} ]
then
CWD=`pwd`
if [ ! -d ${BACKUPDIR} ]
then
echo
echo "$TXT_BUPDIR1 ${BACKUPDIR} $TXT_BUPDIR2 "
mkdir ${BACKUPDIR}
fi
cd ${SISCAD_HOME}
#
# Alles sichern, was Kunde seit der Installation eventuell
# geaendert haben koennte, jedoch nicht sollte !!!!
# Zur Ermittlung der geaenderten Dateien zuerst auf das Verzeichnis
# setzen und anschliessend im find mit . arbeiten, da symbolische Links
# im find-Befehl gesondert behandelt werden.
#
FILES2SAVE=`find . -type f -newer ${LOGFILE} -print`
if [ " " != " ${FILES2SAVE}" ]
then
echo
echo $TXT_SAVEOLD ${BACKUPDIR} ...
tar cf - `echo ${FILES2SAVE}` | (cd ${BACKUPDIR}; tar xvf -) ||\
stopMsg "$TXT_SAVEERR"
fi
if [ ${TEST_LN} ${SISCAD_HOME} ]
then
# Loeschen des gelinkten Verzeichnisses
LN_DIR=`ls -l ${SISCAD_HOME} | awk -F\> '{print $2}'`
RM_DIR="${LN_DIR}"
else
LN_DIR=""
RM_DIR="${SISCAD_HOME}"
fi
cd ${CWD}
echo
echo ${RM_DIR} $TXT_REMOVED
rm -rf ${LN_DIR} ${SISCAD_HOME} 2>&1 >/dev/null
fi
}
inst_newversion() # install new SISCAD-P
#################
{
if [ ! -d ${INSTALLBASE} ]
then
echo
echo "$TXT_DIR ${INSTALLBASE} $TXT_CREATING"
mkdir ${INSTALLBASE}
fi
echo
echo $TXT_SISCREATE
cd ${INSTALLBASE}
zcat ${SOURCEDIR}/${SISCADPARCHIVE} | tar xvf - ||\
stopMsg "$TXT_CREATEERR"
if [ "${SISCAD_HOME}" != "${INSTALLBASE}" ]
then
echo "Link ${INSTALLBASE} -> ${SISCAD_HOME}"
${LNCMD} ${INSTALLBASE} ${SISCAD_HOME}
fi
for i in ${SISBINFILES}
do
echo "Link ${SISSTARTER} -> ${BINDIR}/${i}"
${LNCMD} ${SISSTARTER} ${BINDIR}/${i}
done
cd ${SOURCEDIR}
}
#
# Beginn der SISCAD-P Installation
#
clear
set_language
init_text_messages
is_root
clear
echo_nl "
$TXT_WELCOME
##### ### ##### ##### # ###### ######
# # # # # # # # # # # # #
# # # # # # # # # #
##### # ##### # # # # # ##### ######
# # # # ####### # # #
# # # # # # # # # # # #
##### ### ##### ##### # # ###### #
Version ${VERSION}
$TXT_CONTINST $TXT_YESNO : "
askyn || stopMsg " "
clear
select_instdir
check_oldversion
inst_newversion
$SELECT_LANGUAGE $SISLANGUAGE
echo_nl "
$TXT_INSTEND1
$TXT_INSTEND2 ${SISCADPARCHIVE} $TXT_INSTEND3
$TXT_DOYOULIKE ${SISCADPARCHIVE} $TXT_INSTALLRM ? $TXT_YESNO : "
askyn && rm ${SISCADPARCHIVE} install
clear
echo "
##### ### ##### ##### # ###### ######
# # # # # # # # # # # # #
# # # # # # # # # #
##### # ##### # # # # # ##### ######
# # # # ####### # # #
# # # # # # # # # # # #
##### ### ##### ##### # # ###### #
Version ${VERSION}
"
$TXTCMD_SUCCESS