#!/bin/ksh

# Component: log
#
# Description:
#  Control script of component log
#
# Last Updated     : $Author$
# Update Date Time : $Date$
# RCS File Name    : $RCSfile$
# RCS Revision     : $Revision$
# Locked by        : $Locker$
# Symbolic name    : $Name$
# State            : $State$

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

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

#--- FUNC ------------------------------
do_shell_()
{
	if [ -f "$ETC/virthost.sh" ]; then                                                 
		. "$ETC/virthost.sh"                                                             
	fi                                                                                 
	[ -z "$LOG_FACILITY" ] && LOG_FACILITY=`if [ develop = \$USER ]; then echo local1; else echo local3; fi`
	[ -z "$LOG_OPER_FACILITY" ] && LOG_OPER_FACILITY=`if [ develop = \$USER ]; then echo local2; else echo local4; fi`

	cat <<-EndOfInlineData
		LOG_HOME=$HOME/component/log
		LOG=$VAR/log
		LOGS_DATED=$VAR/logs.dated
		LOG_FACILITY=$LOG_FACILITY
		LOG_OPER_FACILITY=$LOG_OPER_FACILITY
	EndOfInlineData

} #do_shell_()

do_crontab_()
{
	# log rotation is hardcoded
	cat <<-EndOfInput
		00 00 * * * $LOG_HOME/rotatelog >/dev/null 2>&1
	EndOfInput
	
	# log zipping and moving is configurable
	# Get time from crontabSchedule settings for starting crontab jobs
	[ -f "$CONF/crontabSchedule.shi" ] && . $CONF/crontabSchedule.shi
	[ -z "$Ziplog" ] && Ziplog="00 15"

	cat <<-EOI
		$Ziplog * * * $LOG_HOME/ziplog >/dev/null 2>&1
	EOI

} #do_crontab_()

do_start_()
{
	# create directories
	[ ! -d "$LOG" ] && mkdir $LOG 2>/dev/null
	[ ! -d "$LOGS_DATED" ] && mkdir $LOGS_DATED 2>/dev/null
  
} #do_start_()

do_stop_()
{

} #do_stop_()

do_status_()
{
	output=`$ASROOT log.asr check`
	if [ "$output" = "ERROR" ]; then
		ps -p `pidof rsyslogd` > /dev/null
		if [ $? -ne 0 ] ; then
			echo "STOPPED"
		else
			echo "OK"
		fi
	else
		echo $output
	fi

} #do_status_()

do_beforesubmit_()
{
	do_stop_

} #do_beforesubmit_()

do_aftersubmit_()
{ 
	do_start_

} #do_aftersubmit_()

do_emergency_()
{
	$ASROOT log.asr restart

} #do_emergency_()


#
# List files/tables to be backed up grouped by categories
#
# output lines should be in '<category> <type> <names>' format
#
do_listbackup_()
{
	cat <<-EOFLISTBACKUP
		log.dated FILE ${LOGS_DATED#$HOME/}
		log.current FILE ${LOG#$HOME/}
	EOFLISTBACKUP
}

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

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

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

fi
