#!/bin/sh
echo ""
echo ""
echo "SETUP CoP.Track single user edition"
echo ""
echo ""
echo "Fuer das Setup muessen die Konfigurationsdateien von jboss und"
echo "PostgreSQL veraendert werden. Auch werden die Dienste dann erneut"
echo "gestartet."
echo ""
echo "At setup we have to change the config of jboss and PostgreSQL."
echo "The services will be restarted too."
echo ""
echo "Weiter, Go on  (y/n): "
read doit
if [ "$doit" == "y" ] ; then
	if ! id -g ; then
		echo "Bitte fuehren Sie dieses Script mit Root-Rechten aus!"
		echo "Please execute this script with root rights!"
		exit
	fi

	COP_HOME="/usr/lib/cop"
	DIRECTORY="/usr/lib/cop/configure"
	JBOSS_HOME="/usr/share/jboss"
	POSTGRESQL_HOME="/var/lib/pgsql"

	RC_JBOSS="/usr/sbin/rcjboss"
	RC_POSTGRESQL="/usr/sbin/rcpostgresql"

	if [ -f ${RC_JBOSS} ]; then
		if [ -f ${RC_POSTGRESQL} ]; then
			if ${RC_POSTGRESQL} status ; then
				echo "Postgresql is running"
			else
				echo "Starting postgresql"
				${RC_POSTGRESQL} start
			fi
		else
			echo "Postgresql wurde nicht gefunden - bitte zuerst installieren"
			echo "Postgresql was not found - please install it first"
			exit
		fi
	else
		echo "JBoss wurde nicht gefunden - bitte zuerst installieren"
		echo "JBoss was not found - please install it first"
		exit
	fi

	less ${DIRECTORY}/cop-licence.txt
	echo ""
	echo "Wenn Sie mit der Lizenz einverstanden sind, drücken sie y."
	echo ""
	echo "If agree in this licence hit y."
	doit=""
	read doit	
	if [ "$doit" == "y" ] ; then
		echo ""
	else
		echo "Byebye."
		exit
	fi

	for xil in `find . -type f`; do chown cop:jboss ${xil}; done
	for xil in `find . -type d`; do chown cop:jboss ${xil}; done 
	

	#PostgreSQL
	echo "Aendere die Datenbankkonfiguration"
	echo "Changing database settings"

	sudo -u postgres cp ${POSTGRESQL_HOME}/data/postgresql.conf ${POSTGRESQL_HOME}/data/postgresql.conf.preCoPTrack
	sudo -u postgres sed s+#port\ =\ 5432+port\ =\ 5432+g ${POSTGRESQL_HOME}/data/postgresql.conf > ${POSTGRESQL_HOME}/data/postgresql.conf.0
	sudo -u postgres mv ${POSTGRESQL_HOME}/data/postgresql.conf.0 ${POSTGRESQL_HOME}/data/postgresql.conf
	sudo -u postgres chown postgres:postgres ${POSTGRESQL_HOME}/data/postgresql.conf

	sudo -u postgres cp ${POSTGRESQL_HOME}/data/pg_hba.conf ${POSTGRESQL_HOME}/data/pg_hba.conf.preCoPTrack
	sudo -u postgres echo "host cop_track coptime 127.0.0.1/32 password" > ${POSTGRESQL_HOME}/data/pg_hba.conf
	sudo -u postgres cat ${POSTGRESQL_HOME}/data/pg_hba.conf.preCoPTrack >> ${POSTGRESQL_HOME}/data/pg_hba.conf
	sudo -u postgres chown postgres:postgres ${POSTGRESQL_HOME}/data/pg_hba.conf

	echo "Lade die geaenderten Einstellungen"
	echo "Reload the new config"
	${RC_POSTGRESQL} restart

	echo "Erzeuge die Datenbank"
	echo "Creating database"
	sudo -u postgres ${COP_HOME}/database/createdatabase.sh


	# jboss
	echo "Stoppe jboss"
	echo "Stop jboss"
	${RC_JBOSS} stop

	echo "Aendere jboss Konfiguration"
	echo "Change jboss config"
	if ! grep "export JBOSS_CLASSPATH=" /etc/sysconfig/j2ee; then
		echo "export JBOSS_CLASSPATH=\"/usr/lib/cop/copconfig\"">>/etc/sysconfig/j2ee
	fi

	# log4j.xml
	sudo -u jboss cp ${JBOSS_HOME}/server/default/conf/log4j.xml ${JBOSS_HOME}/server/default/conf/log4j.xml.preCoPTrack
	sudo -u jboss sed -f ${DIRECTORY}/copappender ${JBOSS_HOME}/server/default/conf/log4j.xml > ${JBOSS_HOME}/server/default/conf/log4j.xml2
	sudo -u jboss sed -f ${DIRECTORY}/copcategories ${JBOSS_HOME}/server/default/conf/log4j.xml2 > ${JBOSS_HOME}/server/default/conf/log4j.xml
	sudo -u jboss rm -f ${JBOSS_HOME}/server/default/conf/log4j.xml2

	# login-config.xml
	sudo -u jboss cp ${JBOSS_HOME}/server/default/conf/login-config.xml ${JBOSS_HOME}/server/default/conf/login-config.xml.preCoPTrack
	sudo -u jboss sed -f ${DIRECTORY}/coprealm ${JBOSS_HOME}/server/default/conf/login-config.xml > ${JBOSS_HOME}/server/default/conf/login-config.xml2
	sudo -u jboss mv -f ${JBOSS_HOME}/server/default/conf/login-config.xml2 ${JBOSS_HOME}/server/default/conf/login-config.xml

	# jboss-service.xml
	sudo -u jboss cp ${JBOSS_HOME}/server/default/conf/jboss-service.xml ${JBOSS_HOME}/server/default/conf/jboss-service.xml.preCoPTrack
	sudo -u jboss sed -e 's/attribute name="URLComparator">org.jboss.deployment.DeploymentSorter/attribute name="URLComparator">org.jboss.deployment.scanner.PrefixDeploymentSorter/' ${JBOSS_HOME}/server/default/conf/jboss-service.xml > ${JBOSS_HOME}/server/default/conf/jboss-service.xml2
	sudo -u jboss mv -f ${JBOSS_HOME}/server/default/conf/jboss-service.xml2 ${JBOSS_HOME}/server/default/conf/jboss-service.xml

	# run.sh
	#sudo -u jboss cp ${JBOSS_HOME}/bin/run.sh ${JBOSS_HOME}/bin/run.sh.preCoPTrack
	cp ${JBOSS_HOME}/bin/run.sh ${JBOSS_HOME}/bin/run.sh.preCoPTrack
	sudo -u jboss sed -e 's/JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME"/JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Djava.awt.headless=true"/' ${JBOSS_HOME}/bin/run.sh > ${JBOSS_HOME}/bin/run.sh2
#	sudo -u jboss mv -f ${JBOSS_HOME}/bin/run.sh2 ${JBOSS_HOME}/bin/run.sh
	mv -f ${JBOSS_HOME}/bin/run.sh2 ${JBOSS_HOME}/bin/run.sh
#	sudo -u jboss chmod 0755 ${JBOSS_HOME}/bin/run.sh
	chmod 0755 ${JBOSS_HOME}/bin/run.sh

	# CoP.Track
#	sudo -u jboss ln -s ${COP_HOME}/copconfig ${JBOSS_HOME}/copconfig
#	sudo -u jboss ln -s ${COP_HOME}/datasource/postgres-ds.xml ${JBOSS_HOME}/server/default/deploy/postgres-ds.xml
#	sudo -u jboss ln -s ${COP_HOME}/copsar ${JBOSS_HOME}/server/default/deploy
	chmod 755 ${COP_HOME}/copsar/*

	ln -s ${COP_HOME}/copconfig ${JBOSS_HOME}/copconfig
	ln -s ${COP_HOME}/datasource/postgres-ds.xml ${JBOSS_HOME}/server/default/deploy/postgres-ds.xml
	ln -s ${COP_HOME}/copsar ${JBOSS_HOME}/server/default/deploy

	# Setting IP-address
	./cop.change.ip.config.sh

	IP=`ifconfig eth0 | grep "inet addr"|awk -F '[:B]' '{print $2}'`

	if test -z $IP; then
	    IP="127.0.0.1"
	fi
	
	for xil in `find . -type d`; do chmod 755 ${xil}; done

	echo "Starte jboss"
	echo "Start jboss"
	${RC_JBOSS} start

	echo "Damit Sie von extern auf die Applikation zugreifen koennen muessen sie"
	echo "noch den TCP-Port 1099 und 1098 (JNDI) und 8080 (HTTP-Server des Jboss)"
	echo "freischalten."
	echo "Dann ist die Installation und Einrichtung von CoP.Track ist abgeschlossen."
	echo "Rufen Sie im Browser die URL:"
	echo "http://${IP}:8080/coptrack/login.jsp"
	echo "auf."
	echo ""
	echo "To use the application from external you have to open TCP-Port 1099"
	echo "and 1098 (JNDI) and 8080 (HTTP-Server of jboss)."
	echo "After that the CoP.Track installation and configuration is terminated."
	echo "Browse to URL:"
	echo "http://${IP}:8080/coptrack/login.jsp"
	echo "to use the CoP.Track."
	echo ""
else
	echo "Sie koennen das Setup jederzeit spaeter als Benutzer root ausfuhren."
	echo "You may do the setup later as user root."
fi
echo "STRG-C zum Beenden"
echo "CTRL-C to exit"
read
