#!/bin/sh

#ident "$script: logcopy Build 5.81.0.5 06/08/30 12:00:00 $"

#----------------------------------------------------------------------------#
# PRODUCT :  HDLM Driver 0501                                                #
#----------------------------------------------------------------------------#
# NAME :     logcopy                                                         #
# FUNCTION : Copy HDLM logs during bootup                                    #
# INSTANCE :                                                                 #
# MEMO :                                                                     #
# DATE :     2003/06/07                                                      #
# AUTHOR :   Bharvi Oak                                          	     #
# HISTORY :                                                                  #
#                                                                            #
#@ All Rights Reserved, Copyright (C) 2003,2006 Hitachi, Ltd.	             #
#----------------------------------------------------------------------------#

# REVAMP ACTIVITY PERFORMED. SO ALL PREVIOUS FDOCS & COMMENTS ARE REMOVED. PLEASE LOOKUP 
# PREVIOUS VERSIONS CODES FOR REFERENCE.

# This script is called from /etc/rc.d/rc.sysinit.
# This script will not run individually from command line
# because it requires a prior sourcing of /etc/rc.d/init.d/functions in the same shell.

if [ -f /etc/redhat-release ]; then
    if [ -f /etc/sysconfig/hdlm-scripts/common-defines ]; then
	    . /etc/sysconfig/hdlm-scripts/common-defines
    else
	    failure $"Attempting to source /etc/sysconfig/hdlm-scripts/common-defines: "
	    return
    fi
elif [ -f /etc/SuSE-release ]; then
    . /etc/rc.status
    rc_reset
    if [ -f /etc/sysconfig/hdlm-scripts/common-defines ]; then
	    . /etc/sysconfig/hdlm-scripts/common-defines
    else
            /bin/logger -t logcopy "Attempting to source /etc/sysconfig/hdlm-scripts/common-defines:  failed"
	    rc_failed
	    rc_status 
	    return
        fi
fi

#############################
# Kernel and HDLM version check start
#############################
if [ "$HDLM_COMMON_RESULT" != "SUPPORT" ]; then
	if [ -f /etc/SuSE-release ]; then
		rc_exit
	else
		return
	fi
fi
#############################
# Kernel and HDLM version check end
#############################

if [ -f /etc/redhat-release ]; then
  
    # During bootup the dlmcfgmgr tries to create the log file
    #in /var/opt/DynamicLinkManager/ and fails as /var may not be mounted start

    # DLMCFGMGRINQUIRYCOPY - steps to copy dlminquiry.log start here for RedHat releases
    if [ -f $DLManagerEtcDir/dlminquiry.log ]; then
        if [ -d $DLManagerVarLogDir ]; then
            if [ -f $DLManagerVarLogDir/dlminquiry.log ]; then
                $CMD_RM -rf $DLManagerVarLogDir/dlminquiry.log  > /dev/null 2>&1
            fi
            $CMD_CP -f $DLManagerEtcDir/dlminquiry.log $DLManagerVarLogDir/dlminquiry.log > /dev/null 2>&1 && \
		    success $"Copying $DLManagerEtcDir/dlminquiry.log to $DLManagerVarLogDir/dlminquiry.log : " > /dev/null 2>&1 || \
		    failure $"Copying $DLManagerEtcDir/dlminquiry.log to $DLManagerVarLogDir/dlminquiry.log : " > /dev/null 2>&1
        else
            failure $"Checking existence of $DLManagerVarLogDir :"
        fi
        $CMD_RM -rf $DLManagerEtcDir/dlminquiry.log > /dev/null 2>&1
    else
        if [ -f $DLManagerVarLogDir/dlminquiry.log ]; then
            $CMD_RM -rf $DLManagerVarLogDir/dlminquiry.log  > /dev/null 2>&1
        fi
    fi
    # DLMCFGMGRINQUIRYCOPY - steps to copy dlminquiry.log end here for RedHat releases
    # During bootup the dlmcfgmgr tries to create the log file
    #in /var/opt/DynamicLinkManager/ and fails as /var may not be mounted end

    # DLMCFGMGRLOGCOPY - steps to copy dlmcfgmgr log start here for RedHat releases
    if [ -f $DLManagerEtcDir/dlmcfgmgr1.log \
	    -a $DLManagerEtcDir/dlmcfgmgr1.log -nt $DLManagerVarLogDir/dlmcfgmgr1.log ]; then
	    if [ -d $DLManagerVarLogDir ]; then
		    DLMNewLogSize=`$CMD_LS -l $DLManagerEtcDir/dlmcfgmgr1.log | $CMD_GAWK '{print $5}'`
		    if [ -f $DLManagerVarLogDir/dlmcfgmgr1.log ]; then
			    DLMOldLogSize=`$CMD_LS -l $DLManagerVarLogDir/dlmcfgmgr1.log | $CMD_GAWK '{print $5}'`
		    else
			    DLMOldLogSize=0
		    fi
		
		    let "DLMTotalLogSize = DLMNewLogSize + DLMOldLogSize"
		    if [ $DLMTotalLogSize -gt 1048576 ]; then
			    $CMD_CP -f $DLManagerVarLogDir/dlmcfgmgr1.log $DLManagerVarLogDir/dlmcfgmgr2.log > /dev/null 2>&1 && \
			    success $"Copying $DLManagerVarLogDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr2.log: " > /dev/null 2>&1 || \
			    failure $"Copying $DLManagerVarLogDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr2.log: " > /dev/null 2>&1
			    $CMD_CP -f $DLManagerEtcDir/dlmcfgmgr1.log $DLManagerVarLogDir/dlmcfgmgr1.log > /dev/null 2>&1 && \
			    success $"Copying $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log: " > /dev/null 2>&1 || \
			    failure $"Copying $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log: " > /dev/null 2>&1
			    $CMD_RM -rf $DLManagerEtcDir/dlmcfgmgr1.log > /dev/null 2>&1
		    else
			    $CMD_CAT $DLManagerEtcDir/dlmcfgmgr1.log >> $DLManagerVarLogDir/dlmcfgmgr1.log 2> /dev/null && \
			    success $"Appending $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log: " > /dev/null 2>&1 || \
			    failure $"Appending $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log: " > /dev/null 2>&1
			    $CMD_RM -rf $DLManagerEtcDir/dlmcfgmgr1.log > /dev/null 2>&1
		    fi
	    else
		    failure $"Checking existence of $DLManagerVarLogDir :"
	    fi
    fi
    # DLMCFGMGRLOGCOPY - steps to copy dlmcfgmgr log end here for RedHat releases
else
    if [ -f /etc/SuSE-release ]; then
        # During bootup the dlmcfgmgr tries to create the log file
        #in /var/opt/DynamicLinkManager/ and fails as /var may not be mounted start

        # DLMCFGMGRINQUIRYCOPY - steps to copy dlminquiry.log start here for SuSE releases      
        if [ -f $DLManagerEtcDir/dlminquiry.log ]; then
            if [ -d $DLManagerVarLogDir ]; then
                if [ -f $DLManagerVarLogDir/dlminquiry.log ]; then
                    $CMD_RM -rf $DLManagerVarLogDir/dlminquiry.log  > /dev/null 2>&1
                fi
                rc_reset
                $CMD_CP -f $DLManagerEtcDir/dlminquiry.log $DLManagerVarLogDir/dlminquiry.log > /dev/null 2>&1 && \
                { /bin/logger -t logcopy "Copying $DLManagerEtcDir/dlminquiry.log to $DLManagerVarLogDir/dlminquiry.log:  succeeded"; rc_status; rc_status -v1; } > /dev/null 2>&1 || \
                { /bin/logger -t logcopy "Copying $DLManagerEtcDir/dlminquiry.log to $DLManagerVarLogDir/dlminquiry.log:  failed"; rc_failed; rc_status -v1; } > /dev/null 2>&1			
                rc_reset
            else
                $CMD_ECHO -n "Checking existence of $DLManagerVarLogDir :"
		        { /bin/logger -t logcopy "Checking existence of $DLManagerVarLogDir :  failed"; rc_failed; }
            fi
            $CMD_RM -rf $DLManagerEtcDir/dlminquiry.log > /dev/null 2>&1
        else
            if [ -f $DLManagerVarLogDir/dlminquiry.log ]; then
                $CMD_RM -rf $DLManagerVarLogDir/dlminquiry.log  > /dev/null 2>&1
            fi
        fi
        # DLMCFGMGRINQUIRYCOPY - steps to copy dlminquiry.log end here for SuSE releases
        # During bootup the dlmcfgmgr tries to create the log file
        #in /var/opt/DynamicLinkManager/ and fails as /var may not be mounted end

        # DLMCFGMGRLOGCOPY - steps to copy dlmcfgmgr log start here for SuSE release
        if [ -f $DLManagerEtcDir/dlmcfgmgr1.log \
	        -a $DLManagerEtcDir/dlmcfgmgr1.log -nt $DLManagerVarLogDir/dlmcfgmgr1.log ]; then
	        if [ -d $DLManagerVarLogDir ]; then
		        DLMNewLogSize=`$CMD_LS -l $DLManagerEtcDir/dlmcfgmgr1.log | $CMD_GAWK '{print $5}'`
		        if [ -f $DLManagerVarLogDir/dlmcfgmgr1.log ]; then
			        DLMOldLogSize=`$CMD_LS -l $DLManagerVarLogDir/dlmcfgmgr1.log | $CMD_GAWK '{print $5}'`
		        else
			        DLMOldLogSize=0
		        fi
		        let "DLMTotalLogSize = DLMNewLogSize + DLMOldLogSize"
		        if [ $DLMTotalLogSize -gt 1048576 ]; then
			        rc_reset
			        $CMD_CP -f $DLManagerVarLogDir/dlmcfgmgr1.log $DLManagerVarLogDir/dlmcfgmgr2.log > /dev/null 2>&1 && \
			        { /bin/logger -t logcopy "Copying $DLManagerVarLogDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr2.log:  succeeded"; rc_status; rc_status -v1; } > /dev/null 2>&1 || \
			        { /bin/logger -t logcopy "Copying $DLManagerVarLogDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr2.log:  failed"; rc_failed; rc_status -v1; } > /dev/null 2>&1			
			        rc_reset
			        $CMD_CP -f $DLManagerEtcDir/dlmcfgmgr1.log $DLManagerVarLogDir/dlmcfgmgr1.log > /dev/null 2>&1 && \
                    { /bin/logger -t logcopy "Copying $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log:  succeeded"; rc_status; rc_status -v1; } > /dev/null 2>&1 || \
                    { /bin/logger -t logcopy "Copying $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log:  failed"; rc_failed; rc_status -v1; } > /dev/null 2>&1
			        $CMD_RM -rf $DLManagerEtcDir/dlmcfgmgr1.log > /dev/null 2>&1
		        else
			        rc_reset
			        $CMD_CAT $DLManagerEtcDir/dlmcfgmgr1.log >> $DLManagerVarLogDir/dlmcfgmgr1.log 2> /dev/null && \
                    { /bin/logger -t logcopy "Appending $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log:  succeeded"; rc_status; rc_status -v1; } > /dev/null 2>&1 || \
                    { /bin/logger -t logcopy "Appending $DLManagerEtcDir/dlmcfgmgr1.log to $DLManagerVarLogDir/dlmcfgmgr1.log:  failed"; rc_failed; rc_status -v1; } > /dev/null 2>&1
			        $CMD_RM -rf $DLManagerEtcDir/dlmcfgmgr1.log > /dev/null 2>&1
		        fi
	        else
		        $CMD_ECHO -n "Checking existence of $DLManagerVarLogDir :"
		        { /bin/logger -t logcopy "Checking existence of $DLManagerVarLogDir :  failed"; rc_failed; }
		    fi
        fi
        # DLMCFGMGRLOGCOPY - steps to copy dlmcfgmgr log end here for SuSE release
        rc_exit
    fi
fi
DLMLFKLOCKFILE=/etc/opt/DynamicLinkManager/.dlmlfk.lock
if [ -f $DLMLFKLOCKFILE ] ; then
	$CMD_RM -rf $DLMLFKLOCKFILE > /dev/null 2>&1
fi
DLMMODULESLOCKFILE=/etc/opt/DynamicLinkManager/.dlm_modules.conf.lock
if [ -f $DLMMODULESLOCKFILE ] ; then
$CMD_RM -rf $DLMMODULESLOCKFILE > /dev/null 2>&1
fi
