#!/bin/ksh

# Component: mcs
#
# Description:
#  Control script of component mcs (Media Creator Server)
#

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

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

#--- FUNC ------------------------------
do_shell_()
{
	cat <<-EndOfInlineData
		MCS_HOME=$HOME/component/mcs
		MCS_REPOSITORY=\$VAR/media.repository
		MCSMEDIATBL=MCSMedia
		MCSCONTENTTBL=MCSContent
		MCSPROGRESSTBL=MCSProgress
		CLASSPATH="\${CLASSPATH}:\${MCS_HOME}/jar/*"
		SERVLETS_JKMOUNTS="\${SERVLETS_JKMOUNTS} /mcs/*"
	EndOfInlineData
} #do_shell_()


do_crontab_()
{
	# Get time for starting cron jobs from crontabSchedule settings
	[ -f "$CONF/crontabSchedule.shi" ] && . $CONF/crontabSchedule.shi
	# Default schedule times
	[ -z "$CleanupExpiredMedia" ] && CleanupExpiredMedia="04-59/5 *"

	[ -z "$CheckProcessedRepositoryOverload" ] && CheckProcessedRepositoryOverload="01-41/20 *"
	[ -z "$CheckDataRepositoryOverload" ] && CheckDataRepositoryOverload="11-51/20 *"

	cat <<-EOI
		$CleanupExpiredMedia * * * $TASKD_HOME/runjavacmd -c "0 com.erad.pacs.mcs.maintenance.CleanupExpired" -p $JAVA_SERVER_PORT
	EOI

	# We may eventually want to add checking media repository status and send messages when getting full
	# [ -z "$CheckRepositoryStatus" ] && CheckRepositoryStatus="02-57/5 *"
	# 		$CheckRepositoryStatus * * * $CASES_HOME/checkRepositoryStatus.sh >/dev/null

} #do_crontab_()




add_links_()
{
	if [ ! -h "${HOME}/htdocs/mcs" ] ; then
		ln -sf "${MCS_HOME}/resources/img" "${HOME}/htdocs/mcs"
	fi


	# MCS GUI has moved to Evo, no separate mcs.war
	# remove webapps link if any
	# can be removed in the future
	[ -h "${TOMCAT_HOME}/webapps/mcs.war" ] && rm "${TOMCAT_HOME}/webapps/mcs.war"
}

do_aftersubmit_()
{
	do_start_

} #do_aftersubmit_


do_start_()
{
	if [ ! -d "$MCS_REPOSITORY" ] ; then
		mkdir "$MCS_REPOSITORY"
		touch "$MCS_REPOSITORY/repositorypart.cfg"
		touch "$MCS_REPOSITORY/repository.cfg"
	fi

	add_links_
} #do_start_()


#
# List files/tables to be backed up grouped by categories
#
# output lines should be in '<category> <type> <names>' format
#
do_listbackup_()
{
	# TODO: Do we want to backup anything?
	#       Maybe config
#	sCONF=${CONF#$HOME/}
#	cat <<-EOFLISTBACKUP
#		data.users FILE ${USERS_DATA#$HOME/} ${REPOSITORY_USERS#$HOME/}
#		data.users DATABASE Access Groups
#		config.server FILE $sCONF/self.rec $sCONF/config.xml $sCONF/default_config.xml $sCONF/profile.xml $sCONF/default_profile.xml
#		config.system FILE $sCONF/security.rec $sCONF/localIPs.cfg ${VAR#$HOME/}/volume_info.prp
#		config.gui FILE $sCONF/institution
#	EOFLISTBACKUP
}

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

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

fi
