#!/bin/ksh
#
# Component: classes
#
# Description:
#  Control script of component classes
#

#--- INIT ------------------------------
#needs $HOME
. $HOME/etc/ctrl.main.shi

[ -f $HOME/etc/setenv.sh ] && . $HOME/etc/setenv.sh

#--- FUNC ------------------------------
do_shell_()
{

  cat <<EndOfInlineData
CLASSES_HOME=$HOME/component/classes
ATTACHMENT_DATA=$HOME/data/attachment
GENERIC_ORDER_ATTACHMENT_REPOSITORY=\$ATTACHMENT_DATA/generic/order/repository
HL7_MSGFLAG_DIR=$VAR/hl7/messageflag
EndOfInlineData

# XXX: HL7_MSGFLAG_DIR is for Mixed Mode only 

} #do_shell_()

do_start_()
{
	if [ ! -h $HOME/htdocs/WEB-INF/classes ] ; then
		CWD=`pwd`
		cd $HOME/htdocs/WEB-INF/classes
		if [ ! -h $HOME/htdocs/WEB-INF/classes/imagemed ] ; then
			ln -s $CLASSES_HOME/imagemed
		fi
		if [ ! -h $HOME/htdocs/WEB-INF/classes/com ] ; then
			ln -s $CLASSES_HOME/com
		fi
		if [ ! -h $HOME/htdocs/WEB-INF/web.xml ] ; then
			ln -s $CLASSES_HOME/web.xml $HOME/htdocs/WEB-INF/
		fi
		if [ ! -h $HOME/htdocs/WEB-INF/eptaglib.tld ] ; then
			ln -s $CLASSES_HOME/eptaglib.tld $HOME/htdocs/WEB-INF/
		fi
		cd $CWD
	fi

	# create default keys
	if [ ! -e $CONF/modules.keys ]; then
		$JAVA_HOME/bin/keytool -genkeypair -alias usermanager -keyalg DSA -keysize 1024 -dname "CN=usermanager.pacs.erad,O=eRAD" -validity 2000 -keystore /home/medsrv/var/conf/modules.keys -storepass 9a5fzUrop0at3Rq -keypass 7kTPnRW2455l33J
	fi


	# deploy default log4j2.xml
	if ! md5sum --status --check "${DATA}/update_flags/log4j2.xml.md5" >/dev/null 2>/dev/null ; then
		if [ -e "$CONF/log4j2.xml" ] ; then
			echo "Factory log4j2 configuration has changed, replacing custom configuration"
			echo "Saving current configuration to $CONF/log4j2.xml.save"
			/usr/bin/logger -p $LOG_FACILITY.info -t "classes_ctrl[$$]" "Factory log4j2 configuration has changed, replacing custom configuration. Saving current configuration to $CONF/log4j2.xml.save"
			mv -f "$CONF/log4j2.xml" "$CONF/log4j2.xml.save"
		fi
		cp "$CLASSES_HOME/com/erad/pacs/log4j2.xml" "$CONF/log4j2.xml"
		md5sum "$CLASSES_HOME/com/erad/pacs/log4j2.xml" > "${DATA}/update_flags/log4j2.xml.md5"
	fi


	# check and create the attachment repository
	if [ ! -e "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}" ] ; then
		LegacyAttDir=$( dirname "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}" )
		LegacyExists="true"
		( ! -e "${LegacyAttDir}" || rmdir "${LegacyAttDir}" 2>/dev/null ) && LegacyExists="false"
		mkdir -p "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}"
		touch "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}/repository.cfg"
		
		mkdir "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}/mount0"
		touch "$GENERIC_ORDER_ATTACHMENT_REPOSITORY/mount0/repositorypart.cfg"
		echo 'mountPoints="mount0"' > "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}/repository.cfg"
		
		if [ "${LegacyExists}" = "true" ] ; then
			echo "legacyDir=${LegacyAttDir}" >> "${GENERIC_ORDER_ATTACHMENT_REPOSITORY}/repository.cfg"
		fi
	fi


} #do_start_()

do_aftersubmit_()
{
	$APACHE_HOME/ctrl stop
	$APACHE_HOME/ctrl start
} #do_aftersubmit_()

#--- MAIN ------------------------------

check_action_ $1
if [ 0 = $? ]; then
	do_$1_

else
	echo "--- Component classes [ctrl $$]: Bad command: $1" >&2
	exit 1

fi
