#!/bin/sh

# N\Ȃ
if [ -e /etc/rc.d/init.d/hsysmgr ]
then
	rm -f /etc/rc.d/init.d/hsysmgr
	rm -f /etc/rc.d/init.d/hsysmgr1
	rm -f /etc/rc.d/init.d/hsysmgr2
	ln -s /opt/hitachi/serverconductor/agent/rc/hsysmgr /etc/rc.d/init.d/hsysmgr
fi

if [ -e /etc/rc.d/init.d/hsysmgr*.mod ]
then
	rm -f /etc/rc.d/init.d/hsysmgr.mod
	rm -f /etc/rc.d/init.d/hsysmgr1.mod
	rm -f /etc/rc.d/init.d/hsysmgr2.mod
	ln -s /opt/hitachi/serverconductor/agent/rc/hsysmgr.mod /etc/rc.d/init.d/hsysmgr.mod
fi

NEWDIR=/opt/hitachi/serverconductor/agent/newconfig
OLDDIR=/opt/hitachi/serverconductor/agent/work_config
USRDIR=/etc/opt/hitachi/serverconductor/agent

AGENT="agent.cfg"
MISC="misc.cfg"
TRACE="trace.cfg"
MENU="hsmmenu.cfg"
ALERT="alert.cfg"
COLLABO="collaboration.cfg"
SYSLOGW="syslogWatchdog.cfg"
SYSLOGR="syslogdogRotate"

add_member () {
	NEWFILE=$NEWDIR/$1
	OLDFILE=$OLDDIR/$1
	USRFILE=$USRDIR/$1
	
	if [ ! -f $USRFILE ]; then
		cp -p $NEWFILE $USRFILE 2> /dev/null
		diff $NEWFILE $USRFILE > /dev/null 2>&1
		if [ "$?" != "0" ]; then
			rm -f $USRFILE
			#echo "ERROR:   KASM9303S-E: Cannot create the $USRFILE."
			exit 1
		fi
		chmod u+w $USRFILE
	else
		FORMAT1=`head -n 1 $NEWFILE`
		FORMAT2=`head -n 1 $OLDFILE`
		if [ "$FORMAT1" = "$FORMAT2" ]; then
			case $1 in
			'syslogdogRatote')
				;;
			'alert.cfg')
				while read -r LINE
				do
					KEY=`echo "$LINE" | awk '{ print $1 }'`
					if [ $KEY ]; then
						FMTCHECK=`echo "$KEY" | awk -F'x' '{ print $1}'`
						if [ "$FMTCHECK" = "EVENT=0" ]; then
							MATCH=`grep -e "^$KEY" $OLDFILE | awk '{ print $1}'`
							if [ "$MATCH" != "$KEY" ]; then
								echo "$LINE" | cat >> $USRFILE
							fi
						fi
					fi
				done < $NEWFILE
				rm -f $OLDFILE
				;;
			*)
				while read -r LINE
				do
				#	echo "$LINE"
					KEY=`echo "$LINE" | awk '$2 == "=" { print $1 }'`
					if [ $KEY ]; then
				# 3500Z007
						MATCH1=`grep -e "^$KEY	" $OLDFILE | awk '{ print $1}' | head -1`
						MATCH2=`grep -e "^$KEY " $OLDFILE | awk '{ print $1}' | head -1`
						if [ "$MATCH1" != "$KEY" -a \
							 "$MATCH2" != "$KEY" ]; then
							echo "$LINE" | cat >> $USRFILE
						fi
					fi
				done < $NEWFILE
				rm -f $OLDFILE
				;;
			esac
		fi
	fi
}

chk_copy () {
	cp -p $1 $2 2> /dev/null
	diff $1 $2 > /dev/null 2>&1
	if [ "$?" != "0" ]; then
		rm -f $2
#		echo "ERROR:   KASM9303S-E: Cannot create the $2."
		exit 1
	fi
}

if [ ! -f $USRDIR/$TRACE -a \
     ! -f $USRDIR/$AGENT -a \
     ! -f $USRDIR/$MISC  -a \
     ! -f $USRDIR/$ALERT -a \
     ! -f $USRDIR/$COLLABO -a \
     ! -f $USRDIR/$MENU  -a \
     ! -f $USRDIR/$SYSLOGW -a \
     ! -f $USRDIR/$SYSLOGR ]
then
	chk_copy  $NEWDIR/$TRACE $USRDIR/$TRACE
	chmod u+w $USRDIR/$TRACE
	chk_copy  $NEWDIR/$AGENT $USRDIR/$AGENT
	chmod u+w $USRDIR/$AGENT
	chk_copy  $NEWDIR/$MISC $USRDIR/$MISC
	chmod u+w $USRDIR/$MISC
	chk_copy  $NEWDIR/$MENU $USRDIR/$MENU
	chmod u+w $USRDIR/$MENU
	chk_copy  $NEWDIR/$ALERT $USRDIR/$ALERT
	chmod u+w $USRDIR/$ALERT
	chk_copy  $NEWDIR/$COLLABO $USRDIR/$COLLABO
	chmod u+w $USRDIR/$COLLABO
	chk_copy  $NEWDIR/$SYSLOGW $USRDIR/$SYSLOGW
	chmod u+w $USRDIR/$SYSLOGW
	chk_copy  $NEWDIR/$SYSLOGR $USRDIR/$SYSLOGR
	chmod u+w $USRDIR/$SYSLOGR
else
	mkdir $OLDDIR
	cp -p $USRDIR/$TRACE $OLDDIR/$TRACE
	cp -p $USRDIR/$AGENT $OLDDIR/$AGENT
	cp -p $USRDIR/$MISC $OLDDIR/$MISC
	cp -p $USRDIR/$MENU $OLDDIR/$MENU
	cp -p $USRDIR/$ALERT $OLDDIR/$ALERT
	cp -p $USRDIR/$COLLABO $OLDDIR/$COLLABO
	cp -p $USRDIR/$SYSLOGW $OLDDIR/$SYSLOGW
	cp -p $USRDIR/$SYSLOGW $OLDDIR/$SYSLOGR
	if [ -d $OLDDIR ]; then
		add_member $TRACE
		add_member $AGENT
		add_member $MISC
		add_member $MENU
		add_member $ALERT
		add_member $COLLABO
		add_member $SYSLOGW
		add_member $SYSLOGR
		rm -rf $OLDDIR
	fi
fi

#R[0Ԃ(I) 3410C004
exit 0
