#!/bin/sh
# set -x
# $Id: install,v 2.7 1995-07-12 13:04:33+01 zkoppany Exp zkoppany $
#
################################################################################
# file	:install
# usage : 
#	$ su root
#	# sh ./install
# The installation copies programs into the destination directory
# given by a user, and starts the specified database servers on
# the local machine if they are selected.
# To start servers on the local machine some database specific
# enviroment variable have to be set.
#
# set -x 
trap 'echo "Installation Aborted!"; exit' 1 2 3 15

stty intr '^c'

if [ "$1" != "AUTOEXEC" ]
then
    if [ -f /bin/sh5 ]
    then
        exec /bin/sh5 $0 AUTOEXEC $*
    else
        exec /bin/sh $0 AUTOEXEC $*
    fi
fi

echo "  #######################################################################"
echo "  #                                                                     #"
echo "  #  (c) Copyright 1992,1993,1994,1995 multiX Software GmbH.            #"
echo "  #                  All rights reserved                                #"
echo "  #                                                                     #"
echo "  #  Tel: +49-711-7287426  Fax: +49-711-7287427                         #"
echo "  #  E-mail: odd@multix.de  or  paf@multix.de                           #"
echo "  #  WWW http://multix.n-e-t.de/home.html                               #"
echo "  #                                                                     #"
echo "  #######################################################################"
echo
echo "  ODD \$Revision: 2.7 $"
echo

USERID=`id | sed 's/(/ /' | sed 's/=/ /' | awk '{print $2}'`
if [ $# -gt 1 ]
then	root=$2
	USERID="0"
else	root="root"
fi

if [ "$USERID" != "0" ]
then
	echo "Sorry, this software can be installed only by root"
	exit 1
fi
 
umask 022
CHOWN="/bin/chown"
CHMOD="chmod"
if [ -f /bin/sun ] && sun
then
	if [ -d /proc ]
	then	MACH_TYPE="SOL"
		ECHO=echo
		ECHOPRE=""
		ECHOSUF="\c"
		num=-1
		for i in SOL*
		do
			num=`expr $num + 1`
		done
		if [ $num -le 0 ]
		then	answ="k"
			while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
			do
				$ECHO $ECHOPRE "Do you want to install the SunOS executables ? [y-n] " $ECHOSUF
				read answ
			done
			if [ "$answ" = "Y" -o "$answ" = "y" ]
			then	MACH_TYPE="SUN4"
			fi
		fi
		mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
	else	MACH_TYPE="SUN4"
		ECHO=/bin/echo
		ECHOPRE="-n"
		ECHOSUF=""
		CHOWN="/etc/chown"
		mxprocs=`ps -ax | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $1}'`
	fi
elif [ -f /vmunix ] && [ -f /etc/setld ]
then
	MACH_TYPE="PMAX"
	ECHO=/bin/echo
	ECHOPRE="-n"
	ECHOSUF=""
	CHOWN="/etc/chown"
	mxprocs=`ps -ax | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $1}'`
elif [ -f /hp-ux ]
then
	if [ -x /bin/hp9000s300 ] && hp9000s300
	then
		MACH_TYPE="HP3"
	elif [ -x /bin/hp9000s800 ] && hp9000s800
	then
		MACH_TYPE="HP8"
	else
		echo "Unsupported model HP machine...Exiting..."
		exit 2
	fi
	mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
	ECHO=echo
	ECHOPRE=""
        ECHOSUF="\c"
elif [ -f /etc/systemid ] && [ -d /etc/perms ]
then
	if [ ! -d /proc ]
	then	MACH_TYPE="ODT"		# SCO-ODT
	else	MACH_TYPE="U65"		# UNISYS 65
	fi
	ECHO=/bin/echo
	ECHOPRE=""
	ECHOSUF="\c"
	mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
elif [ -f /etc/lslv -o -f /usr/lib/netls/bin/ls_targetid ]
then
	MACH_TYPE="AIX"
	ECHO=/bin/echo
	ECHOPRE=""
	ECHOSUF="\c"
	mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
elif [ "`uname -m`" = "RM600" ]
then	 MACH_TYPE="SNI6"
	ECHO=/bin/echo
	ECHOPRE=""
	ECHOSUF="\c"
	mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
elif [ "`uname -m`" = "RM400" ]
then	 MACH_TYPE="SNI4"
	ECHO=/bin/echo
	ECHOPRE=""
	ECHOSUF="\c"
	mxprocs=`ps -ef | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $2}'`
elif [ "`uname -s`" = "Linux" ]
then	 MACH_TYPE="LUX"
	ECHO=/bin/echo
	ECHOPRE=""
	ECHOSUF="\c"
	mxprocs=`ps -ax | egrep '_adisrv|_ax_srv|mxnlmgrd|hyper|msqld' | grep -v grep| awk '{print $1}'`
else
	echo "Unsupported machine...Exiting..."
	exit 2
fi

copied="n"

if [ "$mxprocs"x != "x" ]
then
	echo "Warning, active multix server processes, PIDs listed below:"
	for i in $mxprocs
	do
		echo " PID:$i"
	done
	echo "During the installation these processes will be killed"
	answ="k"
	while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
	do
		$ECHO $ECHOPRE "Continue ? [y-n] " $ECHOSUF
		read answ
	done
	if [ "$answ" = "Y" -o "$answ" = "y" ]
	then
		for i in $mxprocs
		do
			kill $i
		done
	else
		echo "Installation is not completed ...Exiting..."
		exit 2
	fi
fi


install_start_msql () {
	if [ -f ${MACH_TYPE}msqld ]
	then	
	   $ECHO
	   $ECHO
	   answ="k"
	   while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
	   do
		$ECHO $ECHOPRE "Do you want to install MINISQL database ? [y-n] "$ECHOSUF
		read answ
	   done
	   if [ "$answ" = "Y" -o "$answ" = "y" ]
	   then
		# Copy the MSQL database

		copy_file "$MACH_TYPE"msqld 	$odd/msqld 	4755
		copy_file msql.acl		$odd/msql.acl 	444
		if [ ! -d $odd/msqldb ]
		then
			mkdir $odd/msqldb
		fi
		# Copy the database server for MINISQL
		copy_file "$MACH_TYPE"min_adisrv 	$odd/min_adisrv	4755

		# Create prototype configuration entry for 
		# MINISQL with the name 'demo'


		# Setting up envirionment for MINISQL to know where it is

		MSQL_HOME=$odd
		export MSQL_HOME

		# Start MINISQL database 

		$odd/msqld& 
		if [ $? -ne 0 ]
		then	
			$ECHO "Warning, Can't start the MINISQL database"
			return
		fi
		$odd/min_adisrv -m$odd
		if [ $? -ne 0 ]
		then
			$ECHO "Warning, Can't start the MINISQL database"
			return
		fi
		install_demo_db
	   fi
	fi
}

copy_file() {
	if [ -f $1 ]
	then
		cp $1 $2
		if [ $? -ne 0 ]
		then	$ECHO "Copy of $1 into $2 failed ! Exiting..."
			exit 2
		else
			if [ ! -d $2 ]
			then
				$CHMOD $3 $2
			else
				outname=$2/`basename $1`
				$CHMOD $3 $outname
			fi
		fi
	else
		$ECHO $1 "does not exist...Exiting..."
		exit 2
	fi
}

create_dir() {
	if [ ! -d $1 ]
	then	mkdir -p $1
		if [ $? -ne 0 ]
		then    $ECHO "Could not create $1 directory ! Exiting..."
		exit 2
		fi
	fi
	$CHMOD 755 $1
}

copy_server() {
	ifile=$1
	ofile=$2
	dbsys=$3

	if [ -f $ifile ]
	then	
		copy_file $ifile $odd/$ofile 4755
		$CHOWN $root $odd/$ofile
		if [ $? -ne 0 ]
		then	$ECHO "Change owner of $odd/$ofile failed ! Exiting..."
			exit 2
		fi
		if [ "$dbsys" = "ADABAS" ]
		then	
			copy_file mxadarun $odd 775
		fi
		$ECHO "Database server for $dbsys installed"
	fi
}

start_server() {
	ofile=$1
	dbsys=$2

	if [ -f $ofile ]
	then	
		answ="k"
		while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
		do
			$ECHO $ECHOPRE "Do you want to start the ""$dbsys"" server now ? [y-n] "$ECHOSUF
			read answ
		done
		if [ "$answ" = "Y" -o "$answ" = "y" ]
		then
			case "$dbsys" in
			"Oracle")
				def=$ORACLE_HOME
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "ORACLE_HOME environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				ORACLE_HOME=$dbhome
				export ORACLE_HOME
				;;
			"Ingres")
				def=$II_SYSTEM
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "II_SYSTEM environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				II_SYSTEM=$dbhome
				export II_SYSTEM
				;;
			"Informix")
				def=$INFORMIXDIR
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "INFORMIXDIR environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				INFORMIXDIR=$dbhome
				export INFORMIXDIR
				;;
			"Sybase")
				def=$SYBASE
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "SYBASE environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				SYBASE=$dbhome
				export SYBASE
				;;
			"SQL-DB")
				def=$DBROOT
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "DBROOT environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				DBROOT=$dbhome
				export DBROOT
				;;
			"ADABAS")
				def=$ESQSRVDIR
				$ECHO "Please enter the"
				$ECHO $ECHOPRE "ESQSRVDIR environment variable: [$def] "$ECHOSUF
				read dbhome
				if [ "$dbhome""x" = "x" ]
				then 
					dbhome=$def
				fi
				ESQSRVDIR=$dbhome
				export ESQSRVDIR
				;;
			esac

			if [ "$dbsys" = "ADABAS" ]
			then	$odd/mxadarun $ofile -m$odd
			else	$ofile -m$odd
			fi


			if [ $? -ne 0 ]
			then	$ECHO "Can't start the $ofile server, installation Aborted!"
				exit 1
			fi
		fi
	fi
}

set_license() {

	$ECHO
	$ECHO	"Setting up license file ..."
	$ECHO
	if [ -f $odd/mxlicensedat ]
	then	
		mv $odd/mxlicensedat $odd/mxlicensedat.old
	fi

	copy_file "$MACH_TYPE"mxnlmgrd $odd/mxnlmgrd 755
	copy_file mxlicensedat $odd 644
}

install_demo_db  () {
	if [ ! -f $odd/hyper ]
	then
		return
	fi
	if [ ! -f $odd/msqld.pid ]
	then
		$ECHO "Warning, the MINISQL database is not running"
	else
		$ECHO "The MINISQL database is running ..."
	fi
	
	$ECHO "Creating demo database and demo tables ..." 
	def=":0.0"
	if [ "$DISPLAY"x = "x" ]
	then	$ECHO $ECHOPRE "Enter DISPLAY (X11) value or s to skip this step ["$def"]: " $ECHOSUF
		read disp
		if [ "$disp"x = "x" ]
		then	disp=$def
		fi
		DISPLAY=$disp
		export DISPLAY
	fi
	if [ "$disp" != "s" ]
	then	$odd/hyper -nofork -home $odd -f $odd/demos/CrDemoDb.tcl
		$ECHO "`uname -n` demo MINISQL" >$odd/etc/config
	fi
}

start_all_server () {

		set_license
		$ECHO
		$ECHO	"Starting servers ..."
		$ECHO
		start_server $odd/ora_adisrv 	Oracle	
		start_server $odd/ing_adisrv 	Ingres	
		start_server $odd/inf_adisrv 	Informix
		start_server $odd/syb_adisrv 	Sybase
		start_server $odd/sdb_adisrv 	SQL-DB	
		start_server $odd/ada_adisrv 	ADABAS	
		start_server $odd/mum_adisrv 	MUMPS	
		install_start_msql
}

if [ -f release ]
then	$ECHO "First you have to execute Release and then ./install can be executed"
	$ECHO "in the directory created by Release."
	exit 2
fi

rm -f /usr/local/start_odd
rm -f /usr/local/bin/start_odd
rm -f /usr/local/bin/hyper

top=/usr/local/bin
odd=/usr/local/odd

def=$top
$ECHO "Enter a directory name where you want to install PAF,"
$ECHO "and ODD scripts. This directory must be later in"
$ECHO $ECHOPRE "your PATH: [$def] " $ECHOSUF
read top
if [ "$top""x" = "x" ]
then	top=$def
fi

if [ -d $top ]
then	rm -f $top/start_odd
	rm -f $top/hyper
else	create_dir $top
fi

$ECHO

def=$odd

okflg="k" 
while [ "$okflg" != "y" ]
do
$ECHO "Enter a new directory name where you want to install"
$ECHO $ECHOPRE "PAF and ODD: [$def] " $ECHOSUF
read odd
if [ "$odd""x" = "x" ]
then	odd=$def
fi

if [ -d $odd ]
then    answ="k"
        while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
        do
		$ECHO $ECHOPRE "This directory already exists. continue ? [y-n]: " $ECHOSUF
		read answ
		if [ "$answ" = "y" -o "$answ" = "Y" ]
		then	
			okflg="y"
		fi
	done
else
	create_dir $odd
	okflg="y"
fi
done

if [ ! -w $top ]
then	top=$odd
fi

echo
langnum="0"
while [ "$langnum" != "1" -a "$langnum" != "2" ]
do
        $ECHO "Language selection"
	$ECHO ""
        $ECHO "	1. English"
        $ECHO "	2. German"
	$ECHO ""
        $ECHO $ECHOPRE "Please enter the language number [1-2]: "$ECHOSUF
        read langnum
done
if test -n "$langnum"
then
        case "$langnum" in
                1)      language="English"
			odd_language="english"
                        ;;
                2)      language="German"
			odd_language="german"
                        ;;
        esac
fi

langext=".${langnum}"

srcstr="./multix.str${langext}"
if test ! -f $srcstr
then
    $ECHO "$language stringfile is not available. Using English file."
    srcstr="./multix.str.1"
    langext=".1"
fi
if test ! -f $srcstr
    then
        $ECHO "String file is not available. ABORT !!"
	exit 1
fi

copy_file ${srcstr} $odd/multix.str 444
copy_file sql_map.tbl $odd/sql_map.tbl 644
if [ -f ALIS/asql_map.tbl ]
then 
	if [ ! -f $odd/asql_map.tbl ]
	then
		copy_file ALIS/asql_map.tbl $odd/asql_map.tbl 644
	fi
fi

if [ -f "$MACH_TYPE"frink ]
then	copy_file "$MACH_TYPE"frink $odd/frink 755
fi

if [ -f "$MACH_TYPE"ora_adisrv -o -f "$MACH_TYPE"ing_adisrv -o -f "$MACH_TYPE"inf_adisrv -o -f "$MACH_TYPE"syb_adisrv -o -f "$MACH_TYPE"sdb_adisrv -o -f "$MACH_TYPE"ada_adisrv -o -f "$MACH_TYPE"mum_adisrv -o -f "$MACH_TYPE"min_adisrv ]
then
	$ECHO
	$ECHO "Installing ODD's database servers ..."
	$ECHO

	copy_server ${MACH_TYPE}ora_adisrv 	ora_adisrv 	Oracle	
	copy_server ${MACH_TYPE}ing_adisrv 	ing_adisrv 	Ingres	
	copy_server ${MACH_TYPE}inf_adisrv 	inf_adisrv 	Informix
	copy_server ${MACH_TYPE}syb_adisrv 	syb_adisrv 	Sybase	
	copy_server ${MACH_TYPE}sdb_adisrv 	sdb_adisrv 	SQL-DB	
	copy_server ${MACH_TYPE}ada_adisrv 	ada_adisrv 	ADABAS	
	copy_server ${MACH_TYPE}mum_adisrv 	mum_adisrv 	MUMPS	

fi

$ECHO	""
$ECHO	"Installing PAF and ODD graphical user interfaces ..."
$ECHO	""

files="hyper cbrowser tbrowser ebrowser highlighter"
for i in $files
do
	copy_file "$MACH_TYPE"$i $odd/$i 755
done
copy_file "$MACH_TYPE"uname.out $odd/uname.out 644

# Install RCS
answ="k"
while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
do
	$ECHO $ECHOPRE "Do you want to install the RCS tasks ? [y-n] " $ECHOSUF
	read answ
done

if [ "$answ" = "Y" -o "$answ" = "y" ]
then	rcsdir="xxxxxxxxxx"
	def=$top
	while [ ! -d $rcsdir ]
	do
		$ECHO $ECHOPRE "Enter the directory for the RCS tasks: [$def] " $ECHOSUF
		read rcsdir
		if [ "$rcsdir""x" = "x" ]
        	then    rcsdir=$def 
        	fi
	done
	rcs_files="co ci rcs rcsdiff rcsmerge ident rlog diff diff3"
	$ECHO "Copying " $rcs_files
	for i in $rcs_files
	do
		copy_file "$MACH_TYPE"$i $rcsdir/$i 755
	done
fi

outn=/tmp/start_odd
$ECHO '#!/bin/sh' > $outn
$ECHO 'if [ "$ODD_HOME""x" = "x" ]' >> $outn
$ECHO 'then' >> $outn
$ECHO '   ODD_HOME='$odd >> $outn
$ECHO '   export ODD_HOME' >> $outn
$ECHO 'fi' >> $outn
$ECHO '$ODD_HOME/hyper -home $ODD_HOME -f $ODD_HOME/start.tcl $*' >> $outn

copy_file $outn $top/start_odd 755

rm $outn

outn=/tmp/paf
$ECHO '#!/bin/sh' > $outn
$ECHO 'if [ "$ODD_HOME""x" = "x" ]' >> $outn
$ECHO 'then' >> $outn
$ECHO '   ODD_HOME='$odd >> $outn
$ECHO '   export ODD_HOME' >> $outn
$ECHO 'fi' >> $outn
$ECHO '$ODD_HOME/hyper -home $ODD_HOME -f $ODD_HOME/paf.tcl $*' >> $outn

copy_file $outn $top/paf 755

rm $outn

outn=/tmp/pafe
$ECHO '#!/bin/sh' > $outn
$ECHO 'if [ "$ODD_HOME""x" = "x" ]' >> $outn
$ECHO 'then' >> $outn
$ECHO '   ODD_HOME='$odd >> $outn
$ECHO '   export ODD_HOME' >> $outn
$ECHO 'fi' >> $outn
$ECHO '$ODD_HOME/hyper -home $ODD_HOME -f $ODD_HOME/pafe.tcl $*' >> $outn

copy_file $outn $top/pafe 755

rm $outn

outn=/tmp/pafe
$ECHO '#!/bin/sh' > $outn
$ECHO 'if [ "$ODD_HOME""x" = "x" ]' >> $outn
$ECHO 'then' >> $outn
$ECHO '   ODD_HOME='$odd >> $outn
$ECHO '   export ODD_HOME' >> $outn
$ECHO 'fi' >> $outn
$ECHO '$ODD_HOME/hyper -home $ODD_HOME -f $ODD_HOME/datasheet.tcl $*' >> $outn

copy_file $outn $top/datasheet 755

rm $outn

odd_actions=$odd/etc/actions

cd uxbitmap
if [ ! -d $odd/bitmaps ]
then	mkdir $odd/bitmaps
fi

find * -type f -print | cpio -pdvmu $odd/bitmaps >/dev/null
cd ..

find csv demos etc progs start.tcl datasheet.tcl paf.tcl sub_paf.tcl pafe.tcl help \
  -type f -print | cpio -pdvmu $odd >/dev/null

$CHOWN -R $root $odd
$CHMOD -R 444 $odd/progs $odd/help
$CHMOD -R 644 $odd/csv $odd/demos $odd/etc $odd/*.tcl

find $odd -type d -exec $CHMOD 755 {} \;

$CHMOD -R a+w $odd/demos

# Install PAF dump
answ="k"
while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
do
	$ECHO $ECHOPRE "Do you want to install the PAF SQL integration ? [y-n] " $ECHOSUF
	read answ
done

if [ "$answ" = "Y" -o "$answ" = "y" ]
then	copy_file demos/paf_dump.tcl $odd/etc/rc.tcl 644
fi


echo ":"$odd/bitmaps/magnify32x32.xpm":::::::::"ODD_Desk_Exec_Selected_Object >> $odd_actions
echo "#:"$odd/bitmaps/trash32x32.xpm":::::::::ODD_Desk_WasteBasket" >> $odd_actions



InstallApplixWareExtender ()
{
ASTERX_home=""

# Applix ########################################################################
answ="k"
while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
do
	if [ -d ASTERX ]
	then
		$ECHO
		$ECHO 
		$ECHO $ECHOPRE "Do you want to install ApplixWare macros ? [y-n] " $ECHOSUF
		read answ
	else answ=n
	fi
done

if [ "$answ" = "Y" ]
then	answ="y"
fi

if [ -d /ext_disk/offices/ApplixWare ]
then	def="/ext_disk/offices/ApplixWare"
else	if [ -d /ext_disk/ApplixWare ]
	then	def="/ext_disk/ApplixWare"
	else	def="/home/ApplixWare"
	fi
fi
exe=""
while [ "$answ" = "y" -a ! -d "$exe"/axlocal -a ! -d "$exe"/axdata -a ! -d "$exe"/daxdata ]
do
	$ECHO $ECHOPRE "Enter the ApplixWare installation directory name: [$def] " $ECHOSUF

	read exe
	if [ "$exe""x" = "x" ]
	then	exe=$def
	fi
done

if [ "$answ" = "y" ]
then	rm -f /usr/local/mxtools
	copy_file ${MACH_TYPE}mxtools /usr/local/bin/mxtools 755
	elf=$exe/axlocal/elf

	if [ -d $exe/daxdata ]
	then    axdata=$exe/daxdata
	else    axdata=$exe/axdata
	fi

	if [ -d $elf ]
	then	if [ -f $exe/applix ]
		then	copy_file ASTERX/ax3_import.am $elf/odd_import.am 444
			ax_suf=elo
		else	copy_file ASTERX/ax_import.am $elf/odd_import.am 444
			ax_suf=am
		fi
		sed s!asterx_dir=.\*\$!asterx_dir=$exe! < ASTERX/ax_export.sh > $odd/ax_export.sh
		$CHMOD 755 $odd/ax_export.sh
		copy_file ASTERX/ax_pafopn.am $elf/odd_imporp.am 444
		ASTERX_home=$exe
	else	$ECHO "Non Aster*x directory"
	fi

        case "$langnum" in
                1)      ss_label=""
			ss_menu="Aster*x Spreadsheet"
			ss_help=$ss_menu
			ge_label=""
			ge_menu="Aster*x Graphic"
			ge_help=$ge_menu
                        ;;
                2)      ss_label=""
			ss_menu="Aster*x Tabellenkalkulation"
			ss_help=$ss_menu
			ge_label=""
			ge_menu="Aster*x Grafik"
			ge_help=$ge_menu
                        ;;
        esac

	echo $ss_label":"$odd/bitmaps/ax_ss.xpm":"$ss_help":::sql::"$ss_menu >> $odd_actions
#	echo $ge_label":"$odd/bitmaps/ax_ge.xpm":"$ge_help":::sql::"$ge_menu >> $odd_actions

	if [ -d ASTERX/PORTS ]
	then 
		cd ASTERX/PORTS	# change to aster*x revisions directory
		cou=0
		revdirs=[A-Z]*_[23].[0-9]_[0-9][0-9][0-9]*_[0-9]
		for i in $revdirs
		do
			cou=`expr $cou + 1`
		done
		$ECHO
		$ECHO "Aster*x (ApplixWare) macros can be installed for the following Revisions"
		cou=1
		for i in $revdirs
		do
			mch=`echo $i | awk -F_ '{print $1}'`
			ver=`echo $i | awk -F_ '{print $2}'`
			rev=`echo $i | awk -F_ '{print $3}'`
			lng=`cat < "$i/Language"`
			$ECHO "    "$cou". Aster*x "$ver" "$mch" Revision" $rev $lng
			cou=`expr $cou + 1`
		done
 
		rev=0
		cou=`expr $cou - 1`
		if [ $cou -eq 0 ]
		then    msg="1"
		else    msg="1-"$cou
		fi
		while [ $rev -lt 1 -o $rev -gt $cou ]
		do
			$ECHO $ECHOPRE "Please enter which Aster*x revision you have ? [$msg]: " $ECHOSUF 
			read i
			if [ cou -eq 0 -a "$i""x" = "x" ]
			then    i=1
			fi
			rev=`expr $i + 0`
			if [ $? -ne 0 ]
			then    rev=0
			fi
		done
	 
		insrev="UNKNOWN"
		cou=1
		for i in $revdirs
		do
			if [ $cou = $rev ]
			then    insrev=$i
			fi
			cou=`expr $cou + 1`
		done
	 
		if [ "$insrev" = "UNKNOWN" ]
		then    $ECHO "Internal script error! Aborting..."
			cd ../.. # return from ASTERX/PORTS to odd_deliver level
		else 
			xsql=$elf/xsql
			if [ -d $xsql ]
			then	
				rm -r $xsql
			fi
			mkdir $xsql
			mch=`echo $insrev | awk -F_ '{print $1}'`
			ver=`echo $insrev | awk -F_ '{print $2}'`
			rev=`echo $insrev | awk -F_ '{print $3}'`
			lng=`cat < "$insrev/Language"`
	 
			$ECHO
			$ECHO "Installing macros on Aster*x "$ver" "$mch" Revision" $rev $lng
 
			$ECHO $rev > $xsql/revisionStamp     # Check it in syslogin.am
			copy_file $insrev/sql_mac.elo $elf/sql_mac.$ax_suf 644
			copy_file $insrev/setup.elo $elf/setupsql.$ax_suf 644
			copy_file $insrev/blobsql.elo $elf/blobsql.$ax_suf 644
			copy_file $insrev/fax.elo $elf/multix_fax.$ax_suf 644

			cd ..	# return to odd_deliver/ASTERX level

			find DemoDocs -print | cpio -pud $xsql > /dev/null
			find $xsql/DemoDocs -type d -exec $CHMOD 777 {} \; > /dev/null
			find $xsql/DemoDocs -type f -exec $CHMOD 666 {} \; > /dev/null
			CP_FROM_XSQL="strfile connect.d message.d query_tool.d fetch_file.d"
			for i in $CP_FROM_XSQL
			do
				copy_file $i $xsql 644
			done

			copy_file sql.h $axdata/elf 644

			if [ ! -f $elf/syslogin.am ]
			then    copy_file syslogin.am $elf 644
			else
				answ="k"
				def="y"
				while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
				do 
					$ECHO $ECHOPRE "Do you want to replace your syslogin.am ? [$def] "$ECHOSUF      
					read answ
					if [ "$answ""x" = "x" ]
					then    answ=$def
					fi
				done
				if [ "$answ" = "Y" -o "$answ" = "y" ]
				then    copy_file syslogin.am $elf 644
				else    $ECHO 'Please edit the "'$elf/syslogin.am'"'
					$ECHO 'to contain the commands can be found in'
					$ECHO `pwd`'/syslogin.am'
				fi
			fi
			cd ..	# return from ASTERX to odd_deliver level
			if [ -f demos/batch/orademobld.sql ]
			then
				cp demos/batch/orademobld.sql $xsql/DemoDocs/Oracle/demo_ora.sql
			fi
			if [ -f demos/batch/ingdemobld.sql ]
			then
				cp demos/batch/ingdemobld.sql $xsql/DemoDocs/Ingres/demo_ing.sql
			fi
			if [ -f demos/batch/infdemobld.sql ]
			then
				cp demos/batch/infdemobld.sql $xsql/DemoDocs/Informix/demo_inf.sql
			fi
			if [ -f demos/batch/sybdemobld.sql ]
			then
				cp demos/batch/sybdemobld.sql $xsql/DemoDocs/Sybase/demo_syb.sql
			fi
			if [ -f demos/batch/sdbdemobld.sql ]
			then
				cp demos/batch/sdbdemobld.sql $xsql/DemoDocs/SQL-DB/demo_sdb.sql
			fi
			if [ -f demos/batch/mindemobld.sql ]
			then
				cp demos/batch/mindemobld.sql $xsql/DemoDocs/MINI/demo_min.sql
			fi
		fi
	fi
fi
}

ALIS_export="0"
ODD_TO_ALIS_LIST="oddlet.elf"
ALIS_ELF_LIST="sql.h sql_eg.elf sql_elf.elfo"
ALIS_APP_LIST="browser form talk shadow_svr mxcvt mxapp catalog sql_int"
ALIS_SCRIPT_LIST="51150.s 51188.s"

InstallAllisExtender () {
if [ -d ALIS ]
then   
	if [ -f /etc/Alis ]
	then
		EXE=`sed -n -e 1p /etc/Alis`
	else
		EXE=""
	fi

        answ="k"
	$ECHO
	$ECHO
        while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
        do
		$ECHO $ECHOPRE "Do you want to install the ALIS support ? [y-n]: " $ECHOSUF
		read answ
        done
 
        if [ "$answ" = "n" -o "$answ" = "N" ]
        then    no_alis=1
	else	no_alis=0
        fi
else
	no_alis=1
fi

if [ "$no_alis" = "0" ]
then
	while [ ! -f "$EXE"/alis ]
	do
		$ECHO $ECHOPRE "Enter the Alis executables' directory name: " $ECHOSUF

		read EXE
	done

	hm_inst=1
	grep hypermenu $EXE/acapps > /dev/null
	if [ $? -ne 0 ]
	then    
		hm_inst=0
	fi

	for i in $ODD_TO_ALIS_LIST
	do
		$ECHO "    copy $EXE/elf/$i"
		copy_file ALIS/$i $EXE/elf/$i 644
		ALIS_export="1"
	done

	if [ -f ALIS/"$MACH_TYPE"hyper ]
	then
		copy_file ALIS/"$MACH_TYPE"hyper $EXE/hyper 755
		$ECHO "    copy $EXE/hyper"
		copy_file ALIS/"$MACH_TYPE"sql_int $EXE/sql_int 755
		$ECHO "    copy $EXE/sql_int"
		if [ ! -f $EXE/asql_map.tbl ]
		then
			copy_file ALIS/asql_map.tbl $EXE/asql_map.tbl 666
			$ECHO "    copy $EXE/asql_map.tbl"
		fi
		copy_file ${srcstr} $EXE/multix.str 644
		$ECHO "    copy $EXE/multix.str"
		for i in $ALIS_ELF_LIST
		do
			$ECHO "    copy $EXE/elf/$i"
			copy_file ALIS/$i $EXE/elf/$i 644
		done
		$ECHO "Installing $language Alis scripts: "

		srcdir="./ALIS/scripts${langext}"
		if test ! -d $srcdir
		then
		    $ECHO "$language Alis menus are not available. Using default menus."
		    $ECHO
		    srcdir="./ALIS/scripts"
		    if test ! -d $srcdir
		    then
			$ECHO "No menus available. ABORT !!"
			$ECHO
			exit
		    fi
		fi
		if [ "$hm_inst" = "1" ]
		then
			if [ -f $EXE/scripts/1.s ]
			then
				diff $EXE/scripts/1.s ${srcdir}/1.s > /dev/null
				if [ $? = 0 ]
				then
					rm -f $EXE/scripts/1.s
				fi
			fi
		fi
		if [ "$hm_inst" = "0" ]
		then
			ALIS_SCRIPT_LIST=$ALIS_SCRIPT_LIST" 1.s"
			copy_file ALIS/"$MACH_TYPE"mxapp $EXE/mxapp 755
			$ECHO "    copy $EXE/mxapp"
			$ECHO "OpenDataDesktop:1189:-home "$odd" -f "$odd"/start.tcl" > /tmp/zzODD
			$ECHO "paf:1189:-home "$odd" -f "$odd"/paf.tcl" >> /tmp/zzODD
			$ECHO "Datasheet:1189:-home "$odd" -f "$odd"/datasheet.tcl" >> /tmp/zzODD
			cat ALIS/app_menu /tmp/zzODD > $EXE/app_menu
			rm /tmp/zzODD
			$ECHO "    copy $EXE/app_menu"
		fi

		if [ ! -d $EXE/scripts ]
		then
			mkdir $EXE/scripts
		fi

		for i in $ALIS_SCRIPT_LIST
		do
			$ECHO "    copying " ${srcdir}/$i
			rm -f $EXE/scripts/$i
			cp ${srcdir}/$i $EXE/scripts
			$CHMOD 666 $EXE/scripts/$i
		done

		TMP="/tmp/tmp$$"
		FNAME=acapps
		FILE=$EXE/$FNAME
		BACK=$EXE/SAVE.$FNAME
		if [ ! -f $BACK ]
		then    $ECHO $FILE is saved into $BACK
			mv $FILE $BACK
			cp $BACK $FILE
			$CHMOD 644 $FILE
		fi

		if [ -f $FILE ]
		then  
			line=`grep -n "SQL\*Solution " $FILE | awk -F: '{print $1}'`
			if [ -n "$line" ]
			then
				for i in $line
				do
					lins=`expr "$i" "-" "1"`
					line=`expr "$i" "+" "1"`
					sed "$lins,${line}d" < $FILE > $TMP
					mv $TMP $FILE
				done
			fi

			line=`grep -n "ODD" $FILE | awk -F: '{print $1}'`
			if [ -n "$line" ]
			then
				for i in $line
				do
					lins=`expr "$i" "-" "1"`
					line=`expr "$i" "+" "1"`
					sed "$lins,${line}d" < $FILE > $TMP
					mv $TMP $FILE
				done
			fi

			for i in $ALIS_APP_LIST
			do
				found=`grep "^$i:" $FILE`
				if [ -n "$found" ]
				then
					sed "/^$i:/d" < $FILE > $TMP
					mv $TMP $FILE
				fi
			done
			if [ "$hm_inst" = "0" ]
			then
				cat $FILE ALIS/acapps.mxelf | sed 's/imp:.*/imp:103:y:-y:::IMP:/'> $TMP
				mv $TMP $FILE
			fi

			if [ "$hm_inst" = "1" ]
			then 
				cat $FILE ALIS/acapps.mxelf > $TMP
				mv $TMP $FILE
			fi
		fi
	fi
fi
}

start_all_server
InstallAllisExtender
InstallApplixWareExtender 



odd_profile=$odd/etc/profile
cp $odd/etc/.org_profile $odd_profile
if [ "$langnum" = "1" ]
then	export_num_style=0
else	export_num_style=1
fi
$ECHO "export_number_style:"$export_num_style >> $odd_profile
$ECHO "asterx_home_dir:"$ASTERX_home >> $odd_profile
$ECHO "alis_export:"$ALIS_export >> $odd_profile
if [ "$ALIS_export" = "1" ]
then
	$ECHO "#alis_elf_load_cmd:$EXE/elf/oddlet.elf" >> $odd_profile
	$ECHO "#alis_elf_macro_name:odd_letter" >> $odd_profile
	$ECHO "#alis_elf_create_style:Firmenbrief" >> $odd_profile
fi

CLARITY_export="0"
$ECHO "rapport_export:"$CLARITY_export >> $odd_profile
$ECHO "odd_language:"$odd_language >> $odd_profile
$ECHO "paf_language:"$odd_language >> $odd_profile
if [ "$MACH_TYPE" = "ODT" ]
then
	$ECHO "desktop_font_size:12" >> $odd_profile
else
	$ECHO "desktop_font_size:12" >> $odd_profile
fi
$CHMOD 644 $odd_profile

if [ "$DISPLAY"x = "x" ]
then
	echo "Warning! Please set the DISPLAY environment variable before ODD is started!"
fi

# Find an appropiate mailer.
if [ -f /bin/mail ]; then
	mail=/bin/mail
elif [ -f /usr/ucb/Mail ]; then
	mail=/usr/ucb/Mail
elif [ -f /usr/bin/mailx ]; then
	mail=/usr/bin/mailx
elif [ -f /usr/bin/mail ]; then
	mail=/usr/bin/mail
else
	mail="mail"
fi

answ="k"
def="y"
while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
do
	$ECHO $ECHOPRE "Do you want to be registered ? [$def]: " $ECHOSUF
	read answ
	if [ "$answ"x = "x" ]
	then	answ=$def
	fi
done

if [ "$answ" = "y" -o "$answ" = "Y" ]
then

	nm=""
	while [ "$nm" = "" ]
	do
		$ECHO $ECHOPRE "Please enter your name: " $ECHOSUF
		read nm
	done

	cm=""
	while [ "$cm" = "" ]
	do
		$ECHO $ECHOPRE "Please enter your company name: " $ECHOSUF
		read cm
	done

	ma=""
	while [ "$ma" = "" ]
	do
		$ECHO $ECHOPRE "Please enter your e-mail address: " $ECHOSUF
		read ma
	done

	ph=""
	$ECHO $ECHOPRE "Please enter your phone number: " $ECHOSUF
	read ph

	fn=""
	$ECHO $ECHOPRE "Please enter your fax number: " $ECHOSUF
	read fn

	reg="0"
	while [ "$reg" != "1" -a "$reg" != "2" -a "$reg" != "3" ]
	do
		$ECHO ""
		$ECHO "	1. ODD"
		$ECHO "	2. PAF"
		$ECHO "	3. ODD & PAF"
		$ECHO ""
		$ECHO $ECHOPRE "	Registration for [1-3]: "$ECHOSUF
		read reg
	done
	if test -n "$reg"
	then
		case "$reg" in
                1)      reg_sym="ODD"
			mtarg="odd@multix.de"
                        ;;
                2)      reg_sym="PAF"
			mtarg="paf@multix.de"
                        ;;
                3)      reg_sym="ODD & PAF"
			mtarg="odd@multix.de"
                        ;;
		esac
	else
		reg_sym="ODD & PAF"
		mtarg="odd@multix.de"
	fi
	reg_fil=/tmp/odd.reg
	$ECHO Registration request for $reg_sym> $reg_fil
	$ECHO Name: $nm>> $reg_fil
	$ECHO Company: $cm >> $reg_fil
	$ECHO E-mail: $ma >> $reg_fil
	$ECHO Phone: $ph >> $reg_fil
	$ECHO Fax: $fn >> $reg_fil
	$ECHO Platform: $MACH_TYPE >> $reg_fil
	$ECHO
	$ECHO "Mailing ("$mail") to "$mtarg
	$mail $mtarg < $reg_fil
	rm $reg_fil
fi

answ="k"
def="y"
$ECHO
$ECHO
while [ "$answ" != "y" -a "$answ" != "Y" -a "$answ" != "n" -a "$answ" != "N" ]
do
	$ECHO $ECHOPRE "Do you want to start a demo PAF project ? [$def]: " $ECHOSUF
	read answ
	if [ "$answ"x = "x" ]
	then	answ=$def
	fi
done
if [ "$answ" = "y" -o "$answ" = "Y" ]
then	cd $odd/demos
	$ECHO "Extracting files..."
	compress -d < ootech.cpio.Z | cpio -idcmu > /dev/null
	if [ ! -d ootech/.paf ]
	then	mkdir ootech/.paf
	fi
	$CHMOD -R a+rw ootech
	$CHOWN -R $root ootech
	find ootech -type d -exec $CHMOD a+x {} \;
	cd ootech
	$ECHO
	$ECHO
	$ECHO "LICENSE MESSAGE FOR THE SOURCES OF THE DEMO PROJECT !"
	$ECHO
	sed -n 1,18p license
	$top/paf *.proj
fi

$ECHO
$ECHO
$ECHO "ODD & PAF have been installed."
$ECHO "To start ODD, type:"
$ECHO
$ECHO	"	$top/start_odd"
$ECHO
$ECHO "To start PAF, type:"
$ECHO
$ECHO   "	$top/paf"
$ECHO
$ECHO "To start DATASHEET(Beta release), type:"
$ECHO
$ECHO   "	$top/datasheet"

$ECHO
$ECHO
$ECHO "For additional information for PAF or ODD please send an e-mail"
$ECHO "to info@multix.de or contact multiX."
$ECHO "multiX Software GmbH"
$ECHO "Zettachring 2"
$ECHO "D-70567 Stuttgart"
$ECHO "Tel: +49-711-7287426  Fax: +49-711-7287427"
$ECHO "WWW http://multix.n-e-t.de/home.html"
