#!/bin/sh
#F-Doc 050401161 MOD 
#F-Doc 050401127 ADD start
#F-doc 50401135 MOD Start
#ident "$installhdlm: installhdlm 2010/02/16 11:55:00 $"
#F-doc 50401217 Copyright information Updated - start
#----------------------------------------------------------------------------#
# PRODUCT :  HDLM Driver 0540                                                #
#----------------------------------------------------------------------------#
# NAME :     installhdlm                                                     #
# FUNCTION : installhdlm script to call appropriate installhdlm exe          #
# INSTANCE :                                                                 #
# MEMO :                                                                     #
# DATE :     2004/05/03                                                      #
# Last Modified:   13/07/2007                                                #
# AUTHOR :   George Martin                                          	     #
# HISTORY :                                                                  #
#                                                                            #
#@ All Rights Reserved. Copyright (C) 2003, 2009, Hitachi, Ltd.              #
#----------------------------------------------------------------------------#
INSTALLHDLM_VERSION="6.3.0-01"
#F-doc 50401217 Copyright information Updated - End
OPTIONS=$*
FROM_INSTALLHDLM="1"
export FROM_INSTALLHDLM
#-------------------------------------------------------------------------------#
# Define command paths															#
#-------------------------------------------------------------------------------#
#F-doc 50701010 : Fullpath for Installer - start
CMD_ECHO="/bin/echo"
CMD_EXPR="/usr/bin/expr"
CMD_RPM="/bin/rpm"
#F-doc 50701010 : Fullpath for Installer - end
# INSTALLHDLM_VERSION="6.2.0-00"
CMD_AWK="/bin/gawk"
CMD_BASENAME="/bin/basename"
CMD_CAT="/bin/cat"
CMD_CHCON="/usr/bin/chcon"
CMD_CHOWN="/bin/chown"
CMD_CHMOD="/bin/chmod"
CMD_CP="/bin/cp -pf"
CMD_DATE="/bin/date"
CMD_DF="/bin/df"
CMD_DIRNAME="/usr/bin/dirname"
CMD_DMESG="/bin/dmesg"
CMD_GREP="/bin/grep"
CMD_INSMOD="/sbin/insmod"
CMD_LS="/bin/ls"
CMD_MKDIR="/bin/mkdir -p"
# CMD_MODPROBE="/sbin/modprobe"
CMD_MV="/bin/mv"
CMD_MOUNT="/bin/mount"
CMD_PS="/bin/ps"
CMD_PWD="/bin/pwd"
CMD_RM="/bin/rm -f"
CMD_SHUTDOWN="/sbin/shutdown"
CMD_SLEEP="/bin/sleep"
CMD_TOUCH="/bin/touch"
CMD_UNAME="/bin/uname"
CMD_WC="/usr/bin/wc"
if [ -f "/etc/SuSE-release" ]; then
	CMD_CUT="/usr/bin/cut"
else
	CMD_CUT="/bin/cut"
fi

#-------------------------------------------------------------------------------#
# HDLM File related macros														#
#-------------------------------------------------------------------------------#
OPT_DMGR="/opt/DynamicLinkManager"
ETC_DMGR="/etc/opt/DynamicLinkManager"
P_PATH=""
INSTPATH=""
INSTPATH_HBSA=""

BOOT_LOCAL="/etc/init.d/boot.local"
CONFIGURE_DEVICES="/sbin/dlmcfgmgr"
DEFAULT_HDLM_LICENSE="/var/tmp/hdlm_license"
DLMMGR="/etc/init.d/DLMManager"
DLM_LIC_BAK="/tmp/dlm_lic_key_`date +%y%m%d%S$$`"
# DLNKMGR="/opt/DynamicLinkManager/bin/dlnkmgr"
DLNKMGR="$OPT_DMGR/bin/dlnkmgr"
# ETC_DMGR="/etc/opt/DynamicLinkManager"
# ETC_LIC_FILE="/etc/opt/DynamicLinkManager/dlm.lic_key"
ETC_LIC_FILE="$ETC_DMGR/dlm.lic_key"
ETC_RCD="/etc/rc.d"
ETC_INITD="/etc/init.d"
HALT_FILE="/etc/rc.d/init.d/halt"
HDLM_INSTLOGDIR="/var/tmp/hdlminstlog/"
HDLM_LICENSE_BAK="/tmp/hdlm_license_`date +%y%m%d%S$$`"
HDLM_LOGFILE="/var/tmp/hdlminstlog/installhdlm01.log"
INSTALLHDLM="installhdlm0"
KERNEL_2_4=0
KERNEL_2_6=0
MODULES_FILE="/etc/modprobe.conf"
# OPT_DMGR="/opt/DynamicLinkManager"

OPT_HDVM="/opt/HDVM"
OPT_HITACHI="/opt/hitachi"
PROC_CPUINFO_FILE="/proc/cpuinfo"
RC_SYSINIT="/etc/rc.d/rc.sysinit"
REDHAT_RELEASE="/etc/redhat-release"
SUSE_RELEASE="/etc/SuSE-release"
VAR_LIC_FILE="/var/tmp/hdlm_license"
VAR_TMP="/var/tmp"
RESULTFILE="/tmp/TMPinstallhdlm_analysis_`date +%y%m%d%S$$`"
MESSAGEFILE="/tmp/TMPinstallhdlm_message_`date +%y%m%d%S$$`"
SETUPFILE=""
USR_LIC_PATH="/tmp/.user_license_path"
DLMINSADRV="/bin/dlminsadrv"
ALERT_INSERT="$OPT_DMGR$DLMINSADRV"
HCMDSLICENSE2_LOG="/var/tmp/hcmdslicense2.log"
#-------------------------------------------------------------------------------#
# Declaration of flags															#
#-------------------------------------------------------------------------------#
FLAG_H="FALSE"
FLAG_S="FALSE"
FLAG_P="FALSE"
FLAG_F="FALSE"
FLAG_INSTPATH="FALSE"
FLAG_INSTPATH_HBSA="FALSE"
FLAG_F="FALSE"
FLAG_FILE_EXISTS_CHECK=1
FLAG_NORMAL_FILE_CHECK=1
FLAG_REDIRECT=0
FLAG_V="FALSE"
BEFORE_FLAG=0
#-------------------------------------------------------------------------------#
# Declaration of option variables												#
#-------------------------------------------------------------------------------#
OPTION_F="-f"
OPTION_H="-h"
OPTION_P="-p"
OPTION_S="-s"
OPTION_V="-v"

#-------------------------------------------------------------------------------#
# Default strings for message output											#
#-------------------------------------------------------------------------------#
INSTALLHDLM_ANALYSIS_STRING="installhdlm_analysis"
INSTALLHDLM_STRING="installhdlm"
DRV_SETTINGS_STRING="driver_config_settings"
DLMCFGMGR_STRING="dlmcfgmgr"
ENV_SETTINGS_STRING="ENVIRONMENT_SETTINGS"
SDDLMADRV="sddlmadrv"
SDDLMFDRV="sddlmfdrv"

DLNKMGR_FAIL=0
DRIVER_CONFIG_FAIL=0
MANAGER_STARTED=0
MANAGER_EXISTS=0

#-------------------------------------------------------------------------------#
# Declaration of error code values for KAPL09215-E message						#
#-------------------------------------------------------------------------------#
ERR_RM_HDLM_LICENSE_BAK=1
ERR_RM_DLM_LIC_BAK=2
ERR_CP_TO_HDLM_LICENSE_BAK=3
ERR_CP_USRLIC_TO_DEFAULT_HDLM_LICENSE=4
ERR_CP_TO_DLM_LIC_BAK=5
ERR_CP_USRLIC_TO_ETC_LIC_FILE=6
ERR_MKDIR_ETC_DMGR=7
ERR_CP_BACKUP_TO_DEFAULT_HDLM_LICENSE=8
ERR_CP_BACKUP_TO_ETC_LIC_FILE=9

VERSION=`$CMD_UNAME -r | $CMD_AWK -F "-" '{print $1}' | $CMD_AWK -F "." '{print $1,$2,$3}'`
if [ "$VERSION" == "2 6 27" ] ; then
	CMD_MODPROBE="/sbin/modprobe --allow-unsupported-modules"
else
	CMD_MODPROBE="/sbin/modprobe"
fi

VERSION=`$CMD_UNAME -r | $CMD_AWK -F "." '{print $2}'`
if [ $VERSION -eq 4 ] ; then
	KERNEL_2_4=1
	FILTER_INSERT="$CMD_INSMOD $SDDLMFDRV"
	if [ -f $REDHAT_RELEASE ] ; then
		MODULES_FILE="/etc/modules.conf"
	fi
else
	KERNEL_2_6=1
	FILTER_INSERT="$CMD_MODPROBE $SDDLMFDRV"
fi

#F-Doc 050401131 MOD start
#Exit if the target machine is neither RedHat or Suse Linux
#if [ ! -f /etc/SuSE-release ] && [ ! -f /etc/redhat-release ]; then
#F-doc 50701010 : Fullpath for Installer - start
#     echo "KAPL09003-E Cannot install in this system."
#     $CMD_ECHO "KAPL09003-E Cannot install in this system."
#F-doc 50701010 : Fullpath for Installer - end
#     exit 1
#fi
#F-Doc 050401131 MOD end

#Define command paths
#F-doc 50701010 : Fullpath for Installer - start
#CMD_ECHO="/bin/echo"
#F-doc 50701010 : Fullpath for Installer - end
#CMD_WC="/usr/bin/wc"
#if [ -f /etc/SuSE-release ]; then
#	CMD_CUT="/usr/bin/cut"
#else
#	CMD_CUT="/bin/cut"
#fi

#-------------------------------------------------------------------------------#
# Length of the installhdlm script name											#
#-------------------------------------------------------------------------------#
INSTALLSCRIPT_LENGTH=11
#-------------------------------------------------------------------------------#
# Length of the command name													#
#-------------------------------------------------------------------------------#
#F-doc 50701010 : Fullpath for Installer - start
#COMMAND_LENGTH=`echo $0 | $CMD_WC -L`
COMMAND_LENGTH=`$CMD_ECHO $0 | $CMD_WC -L`
#-------------------------------------------------------------------------------#
# Length of the installhdml script path 										#
#-------------------------------------------------------------------------------#
#DIFF_LENGTH=`expr $COMMAND_LENGTH - $INSTALLSCRIPT_LENGTH`
DIFF_LENGTH=`$CMD_EXPR $COMMAND_LENGTH - $INSTALLSCRIPT_LENGTH`
#INSTALLSCRIPT_PATH=`echo $0 | $CMD_CUT -c -$DIFF_LENGTH`
#INSTALLSCRIPT_PATH=`$CMD_ECHO $0 | $CMD_CUT -c -$DIFF_LENGTH`
#F-doc 50701010 : Fullpath for Installer - end
#BIN=bin
#INSTALLEXE_PATH=$INSTALLSCRIPT_PATH$BIN    
#TARGET_ARCH=`$CMD_UNAME -m`                    
#if [ "$TARGET_ARCH" = "ia64" ];then                                 
#        INSTALLHDLM_EXE=$INSTALLEXE_PATH/installhdlmipf            
#F-Doc 050401131 MOD start  
#F-doc 50701010 : Fullpath for Installer - start
#elif [ `expr $TARGET_ARCH : \[i\]\[3-6\]\[8\]\[6\]` != 0 ] || [ `expr $TARGET_ARCH : x86_64` ]; then
#elif [ `$CMD_EXPR $TARGET_ARCH : \[i\]\[3-6\]\[8\]\[6\]` != 0 ] || [ `$CMD_EXPR $TARGET_ARCH : x86_64` ]; then
#F-doc 50701010 : Fullpath for Installer - end
#	INSTALLHDLM_EXE=$INSTALLEXE_PATH/installhdlm  
#else
#     $CMD_ECHO "KAPL09003-E Cannot install in this system."
#     exit 1       
#fi
#F-Doc 050401131 MOD end

HDLM_Registry="/etc/.DynamicLinkManager/Path00"
HBsA_Registry="/etc/.HBaseAgent/Path00"

#---------------------------------------------#
# 更新/上書きならインストールディレクトリ取得 #
#---------------------------------------------#
$CMD_RPM -q HDLM >/dev/null 2>&1								
RET=$?															
if [ $RET -eq 0 ]; then											
	#-------------------------------------------------------#	
	# HDLMはｲﾝｽﾄｰﾙ済み(更新/上書きｲﾝｽﾄｰﾙ)					#	
	#-------------------------------------------------------#	
	OPT_DMGR=`$CMD_GREP "HDLM_PROG_DIR" $HDLM_Registry 2>/dev/null | $CMD_AWK -F= '{print $2}'`
	if [ -z "$OPT_DMGR" ]; then									
		OPT_DMGR="/opt/DynamicLinkManager"
	fi															
fi

#################################################################################
#																				#
# message function to display messages											#
#																				#
#################################################################################
message()
{
	case "$1" in
	'KAPL09106' ) $CMD_ECHO "KAPL09106-E The specified HDLM installer command is invalid." ;;
	'KAPL09177' ) $CMD_ECHO "KAPL09177-I HDLM version: $INSTALLHDLM_VERSION" ;;
	'KAPL09210' ) $CMD_ECHO "KAPL09210-I $2 will now start."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09210-I $2 will now start." >> $HDLM_LOGFILE 2>&1
							fi
							;;
	'KAPL09211' ) $CMD_ECHO "KAPL09211-I $2 completed successfully."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09211-I $2 completed successfully." >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09212' ) $CMD_ECHO "KAPL09212-E $2 ended abnormally."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09212-E $2 ended abnormally." >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09213' ) $CMD_ECHO "KAPL09213-W An error occurred during $2 processing."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09213-W An error occurred during $2 processing." >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09215' ) $CMD_ECHO "KAPL09215-E The system environment is invalid. Error Code = $2"
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09215-E The system environment is invalid. Error Code = $2" >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09218' ) $CMD_ECHO "KAPL09218-E $2 cannot be executed."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09218-E $2 cannot be executed." >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09234' ) $CMD_ECHO "KAPL09234-W A folder or file specified by the installation information settings file does not exist. Name = $2"
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09234-W A folder or file specified by the installation information settings file does not exist. Name = $2" >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09238' ) $CMD_ECHO "KAPL09238-W The specified file is not a normal one. File name = $2"
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09238-W The specified file is not a normal one. File name = $2" >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09239' ) $CMD_ECHO "KAPL09239-I The system will now restart."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09239-I The system will now restart." >> $HDLM_LOGFILE 2>&1 
							fi
							;;
	'KAPL09191' ) $CMD_ECHO "KAPL09191-W The installation information settings file does not exist."
							if [ $FILE_CREATE -eq 0 ]; then
								$CMD_ECHO "KAPL09191-W The installation information settings file does not exist." >> $HDLM_LOGFILE 2>&1
							fi
							;;
#	'KAPLx9001' ) $CMD_ECHO "KAPLx9001-E The specified directory is too long. Maximum length = 64" ;;
#	'KAPL09271' ) $CMD_ECHO "KAPL09271-E The directory name specified for $2 option is too long. Maximum length = 64" ;;
	'KAPL09271' ) $CMD_ECHO "KAPL09271-E The directory name specified in the $2 option is too long. The maximum length is 64 characters." ;;
#	'KAPLx9002' ) $CMD_ECHO "KAPLx9002-E There is an invalid character in the specified directory." ;;
#	'KAPL09272' ) $CMD_ECHO "KAPL09272-E There is an invalid character in the directory name specified for $2 option. The character that can be specified is alphabet ('A'-'Z','a'-'z'), numeric('0'-'9'), under line ('_'), and slash ('/')." ;;
	'KAPL09272' ) $CMD_ECHO "KAPL09272-E The following characters are valid for directory names specified in the $2 option:A-Z, a-z, 0-9, underscores (_), and forward slashes (/)" ;;
#	'KAPLx9003' ) $CMD_ECHO "KAPLx9003-E The specified directory is not absolute path." ;;
#	'KAPL09273' ) $CMD_ECHO "KAPL09273-E Specify the directory name of $2 option by the absolute path name." ;;
	'KAPL09273' ) $CMD_ECHO "KAPL09273-E Use an absolute path to specify a directory name in the $2 option." ;;
#	'KAPLx9004' ) $CMD_ECHO "KAPLx9004-E The root directory has been specified." ;;
#	'KAPL09274' ) $CMD_ECHO "KAPL09274-E Root directory ("/") cannot be specified for $2 option." ;;
	'KAPL09274' ) $CMD_ECHO "KAPL09274-E The root directory (/) cannot be specified in the $2 option." ;;
#	'KAPLx9005' ) $CMD_ECHO "KAPLx9005-E The parameter has not been set to a directory." ;;
#	'KAPL09275' ) $CMD_ECHO "KAPL09275-E The parameter specified for $2 option is not a directory. Parameter = $3" ;;
	'KAPL09275' ) $CMD_ECHO "KAPL09275-E The value specified in the $2 option is not a directory. (Parameter = $3)" ;;
#	'KAPLx9006' ) $CMD_ECHO "KAPLx9006-E The specified directory is invalid." ;;
#	'KAPL09276' ) $CMD_ECHO "KAPL09276-E It failed in the access to the directory. Directory name = $2" ;;
	'KAPL09276' ) $CMD_ECHO "KAPL09276-E A directory could not be accessed. (Directory name = $2)" ;;
#	'KAPLx9007' ) $CMD_ECHO "KAPLx9007-E The specified directory already exists." ;;
#	'KAPL09277' ) $CMD_ECHO "KAPL09277-E As for directory $2, it is not emptiness." ;;
	'KAPL09277' ) $CMD_ECHO "KAPL09277-E Directory $2 is not empty." ;;
#	'KAPLx9008' ) $CMD_ECHO "KAPLx9008-E The $2 has already been installed. Cannot specify the $3 option." ;;
#	'KAPL09278' ) $CMD_ECHO "KAPL09278-E An already installed directory and a different directory were specified. Already installed directory name = $2, Specified directory name = $3" ;;
	'KAPL09278' ) $CMD_ECHO "KAPL09278-E A path other than the installation path was specified. (installation path = $2, specified path = $3)" ;;
#	'KAPLx9009' ) $CMD_ECHO "KAPLx9009-E Specify separate directory in -instpath option and -instpathhbsa option." ;;
#	'KAPL09279' ) $CMD_ECHO "KAPL09279-E The same directory name as -instpath and -instpathhbsa option cannot be specified." ;;
	'KAPL09279' ) $CMD_ECHO "KAPL09279-E The same path cannot be specified for the -instpath and -instpathhbsa option at the same time." ;;
	 * ) ;;
	esac
}
# Function to display help message
usage()
{
$CMD_ECHO "Usage :installhdlm [ -v | -h | [-f installation_information_settings_file] ]"
}
#################################################################
#																#
# checkDirName :												#
#																#
#################################################################
checkDirName()
{
	optName="$1"
	Dir="$2"
	IN_HDLM=0
	IN_HBsA=0
	#-----------------------------------------------------------#
	# 指定可能なディレクトリ名の最大長 : 64文字					#
	#-----------------------------------------------------------#
	dirNameLen=${#Dir}
	
	if [ $dirNameLen -gt 64 ]; then
		#-------------------------------------------------------#
		# KAPL0xxxx-E $optNameオプションに指定できるディレクトリ#
		#			  名の最大長は64文字です。					#
		#-------------------------------------------------------#
		message "KAPL09271" "$optName"
		exit 1
	fi
	#-----------------------------------------------------------#
	# 指定可能な文字 : 'A'-'Z','a'-'z','0'-'9','_','/'			#
	#-----------------------------------------------------------#

	$CMD_ECHO $Dir | $CMD_GREP '[^0-9a-zA-Z/_]' > /dev/null 2>&1
	if [ $? -eq 0 ]; then
		#-------------------------------------------------------#
		# KAPL0xxxx-E $optNameオプションのディレクトリ名に指定	#
		#			  できる文字は，'A'-'Z','a'-'z','0'-'9','_',#
		#			  '/'です。									#
		#-------------------------------------------------------#
		message "KAPL09272" "$optName"
		exit 1
	fi
	#-----------------------------------------------------------#
	# フルパス形式で指定する。相対パス形式での指定は不可。		#
	#-----------------------------------------------------------#
	c=${Dir:0:1}
	
	if [ "$c" != "/" ]; then
		#-------------------------------------------------------#
		# KAPL0xxxx-E $optNameオプションに指定するディレクトリ名#
		#			  はフルパス形式で指定してください。		#
		#-------------------------------------------------------#
		message "KAPL09273" "$optName"
		exit 1
	fi
	#-----------------------------------------------------------#
	# rootディレクトリ('/')は指定不可。							#
	#-----------------------------------------------------------#
	if [ "$Dir" == "/" ]; then
		#-------------------------------------------------------#
		# KAPL0xxxx-E $optNameオプションにrootディレクトリ('/')	#
		#			  は指定できません。						#
		#-------------------------------------------------------#
		message "KAPL09274" "$optName"
		exit 1
	fi
	#-----------------------------------------------------------#
	# HDLM/HBsAのｲﾝｽﾄｰﾙ状態をチェック(新規 or 更新/上書きｲﾝｽﾄｰﾙ？)#
	#-----------------------------------------------------------#
	if [ "$optName" == "-instpath" ]; then							
		$CMD_RPM -q HDLM >/dev/null 2>&1								
		RET=$?															
		if [ $RET -eq 0 ]; then											
			IN_HDLM=1
			oldPath=`$CMD_GREP "HDLM_PROG_DIR" $HDLM_Registry 2>/dev/null | $CMD_AWK -F= '{print $2}'`
			if [ -z "$oldPath" ]; then									
				oldPath="$OPT_DMGR"										
			fi															
			if [ "$Dir" != "$oldPath" ]; then					
				#-----------------------------------------------#	
				# ｲﾝｽﾄｰﾙ済みﾊﾟｽと異なるﾊﾟｽが指定された			#	
				#-----------------------------------------------#	
				message "KAPL09278" "$oldPath" "$Dir"				
				exit 1												
			fi														
		fi															
	elif [ "$optName" == "-instpathhbsa" ]; then					
		if [ -f $HBsA_Registry ]; then
			IN_HBsA=1
			WORK=`$CMD_GREP "HBSA_DIR" $HBsA_Registry | $CMD_AWK -F= '{print $2}'`
			if [ -z "$WORK" ]; then									
				oldPath="/opt/HDVM"							
			fi															
			#-------------------------------------------------------#	
			# 末尾の"/HBaseAgent"を削除する							#	
			#-------------------------------------------------------#	
			WORK_N=`$CMD_ECHO "$WORK" | $CMD_AWK -F"/" '{print NF}'`
			WORK_HBaseAgent=`$CMD_ECHO "$WORK" | $CMD_CUT -d"/" -f$WORK_N`
			if [ -z "$WORK_HBaseAgent" ]; then									
				#-------------------------------------------------------#
				# 末尾が"/"の場合										#
				#-------------------------------------------------------#
				WORK_N=`$CMD_EXPR $WORK_N - 1`
			fi
			WORK_N=`$CMD_EXPR $WORK_N - 1`
			oldPath=`$CMD_ECHO "$WORK" | $CMD_CUT -d"/" -f1-$WORK_N`
																	
			if [ "$Dir" != "$oldPath" ]; then				
				#-----------------------------------------------#	
				# ｲﾝｽﾄｰﾙ済みﾊﾟｽと異なるﾊﾟｽが指定された			#	
				#-----------------------------------------------#	
				message "KAPL09278" "$oldPath" "$Dir"			
				exit 1												
			fi														
		fi
	fi																
	#-----------------------------------------------------------#
	# 新規インストールの場合									#
	# 指定したインストール先ディレクトリは存在しないこと。		#
	# または，存在する場合には空であること。					#
	# HBsAの場合は指定されたディレクトリ+/HBaseAgentもチェック	#
	#-----------------------------------------------------------#
	if [ $IN_HDLM -eq 0 ] && [ $IN_HBsA -eq 0 ]; then
		DirChk=$Dir
		if [ -e $DirChk ]; then
			#-------------------------------------------------------#
			# 存在する												#
			#-------------------------------------------------------#
			if [ ! -d $DirChk ]; then
				#---------------------------------------------------#
				# KAPL0xxxx-E $Dirはディレクトリではありません。	#
				#---------------------------------------------------#
				message "KAPL09275" "$optName" "$Dir"
				exit 1
			fi
			#-------------------------------------------------------#
			# ディレクトリである									#
			#-------------------------------------------------------#
			if [ "$optName" == "-instpathhbsa" ]; then
				DirChk=$DirChk/HBaseAgent
				if [ ! -e $DirChk ]; then
					return 0
				fi
			fi
			LIST=`$CMD_LS -a $DirChk 2>/dev/null`
			RET=$?
		
			if [ $RET -ne 0 ]; then
				#---------------------------------------------------#
				# KAPL0xxxx-E ディレクトリ$Dirへのアクセスに失敗しま#
				#			  した。								#
				#---------------------------------------------------#
				message "KAPL09276" "$Dir"
				exit 1
			fi
		
			for FILE in $LIST
			do
				if [ "$FILE" == "."  ]  ||
				   [ "$FILE" == ".." ]; then
					continue
				fi
				#---------------------------------------------------#
				# 空でない											#
				#---------------------------------------------------#
				# KAPL0xxxx-E ディレクトリ$Dirは空ではありません。	#
				#---------------------------------------------------#
				message "KAPL09277" "$Dir"
				exit 1
			done
		fi
	fi
}

#################################################################################
#																				#
# option check function is used for Specified option syntax check				#
#																				#
#-------------------------------------------------------------------------------#
#	installhdlm -h																#
#	installhdlm -v																#
#	installhdlm [-instpath ｲﾝｽﾄｰﾙ先ﾃﾞｨﾚｸﾄﾘ1]									#
#				[-instpathhbsa ｲﾝｽﾄｰﾙ先ﾃﾞｨﾚｸﾄﾘ2]								#
#				[-s] [-p Pathname] [-f ｲﾝｽﾄｰﾙ情報設定ﾌｧｲﾙ]						#
#################################################################################
option_check()
{
#	case "$#" in
#	1 ) if [ "$1" = "$OPTION_S" ] ; then 
#			return 0  
#		elif [ "$1" = "$OPTION_V" ]; then
#			FLAG_V="TRUE"
#			return 0
#		elif [ "$1" = "$OPTION_H" ]; then
#			usage
#			exit 0
#		fi 
#	 	message "KAPL09106"
#		exit 1
#		;;
#	2 ) if [ "$1" = "$OPTION_P" ]; then
#			return 0
#		elif [ "$1" = "$OPTION_F" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$2
#			return 0
#		fi
#		message "KAPL09106"
#		exit 1
#		;;
#	3 ) if [ "$1" = "$OPTION_S" -a "$2" = "$OPTION_P" ]; then
#			return 0
#		elif [ "$1" = "$OPTION_P" -a "$3" = "$OPTION_S" ]; then
#			return 0
#		elif [ "$1" = "$OPTION_F" -a "$3" = "$OPTION_S" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$2
#			return 0
#		elif [ "$1" = "$OPTION_S" -a "$2" = "$OPTION_F" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$3
#			return 0
#		fi
#		message "KAPL09106"
#		exit 1
#		 ;;
#	4 ) if [ "$1" = "$OPTION_F" -a "$3" = "$OPTION_P" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$2
#			return 0
#		elif [ "$1" =  "$OPTION_P" -a "$3" = "$OPTION_F" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$4
#			return 0
#		fi
#		message "KAPL09106"
#		exit 1
#		;;
#	5 ) if [ "$1" = "$OPTION_F" -a "$3" = "$OPTION_P" -a "$5" = "$OPTION_S" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$2
#			return 0
#		elif [ "$1" = "$OPTION_P" -a "$3" = "$OPTION_F" -a "$5" = "$OPTION_S" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$4
#			return 0
#		elif [ "$1" = "$OPTION_S" -a "$2" = "$OPTION_P" -a "$4" = "$OPTION_F" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$5
#			return 0
#		elif [ "$1" = "$OPTION_S" -a "$2" = "$OPTION_F" -a "$4" = "$OPTION_P" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$3
#			return 0
#		elif [ "$1" = "$OPTION_P" -a "$3" = "$OPTION_S" -a "$4" = "$OPTION_F" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$5
#			return 0
#		elif [ "$1" = "$OPTION_F" -a "$3" = "$OPTION_S" -a "$4" = "$OPTION_P" ]; then
#			FLAG_F="TRUE"
#			SETUPFILE=$2
#			return 0
#		fi
#		message "KAPL09106"
#		exit 1
#		;;
#	* ) message "KAPL09106"
#		 exit 1
#		;;
#	esac
	for(( ; $#; ));													
	do																
		opt=$1														
																	
		case "$opt" in												
		"-h")	#-----------------------------------------------#	
				# -h											#	
				#-----------------------------------------------#	
				if [ "$FLAG_H" == "TRUE" ]; then					
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_H="TRUE"										
				;;													
		"-v")	#-----------------------------------------------#	
				# -v											#	
				#-----------------------------------------------#	
				if [ "$FLAG_V" == "TRUE" ]; then					
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_V="TRUE"										
				;;													
		"-s")	#-----------------------------------------------#	
				# -s											#	
				#-----------------------------------------------#	
				if [ "$FLAG_S" == "TRUE" ]; then					
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_S="TRUE"										
				;;													
		"-p")	#-----------------------------------------------#	
				# -p Pathname									#	
				#-----------------------------------------------#	
				if [ "$FLAG_P" == "TRUE" ]; then					
					message "KAPL09106"								
					exit 1											
				fi													
																	
				if [ $# -lt 2 ]; then								
					#-------------------------------------------#	
					# 次の引数無し								#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数有り									#	
				#-----------------------------------------------#	
				shift												
				val=$1												
																	
				if [ -z "$val" ]; then								
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_P="TRUE"										
				P_PATH="$val"										
				;;													
		"-f")	#-----------------------------------------------#	
				# -f ｲﾝｽﾄｰﾙ情報設定ﾌｧｲﾙ							#	
				#-----------------------------------------------#	
				if [ "$FLAG_F" == "TRUE" ]; then					
					message "KAPL09106"								
					exit 1											
				fi													
																	
				if [ $# -lt 2 ]; then								
					#-------------------------------------------#	
					# 次の引数無し								#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数有り									#	
				#-----------------------------------------------#	
				shift												
				val=$1												
																	
				if [ -z "$val" ]; then								
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_F="TRUE"										
				SETUPFILE="$val"									
				;;													
		"-instpath")												
				#-----------------------------------------------#	
				# -instpath ｲﾝｽﾄｰﾙ先ﾃﾞｨﾚｸﾄﾘ1					#	
				#-----------------------------------------------#	
				if [ "$FLAG_INSTPATH" == "TRUE" ]; then				
					message "KAPL09106"								
					exit 1											
				fi													
																	
				if [ $# -lt 2 ]; then								
					#-------------------------------------------#	
					# 次の引数無し								#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数有り									#	
				#-----------------------------------------------#	
				A=`echo "$2" | $CMD_GREP -E "^-"`					
				RC=$?												
																	
				if [ $RC -eq 0 ]; then								
					#-------------------------------------------#	
					# 次の引数は"-"で始まる(他のｵﾌﾟｼｮﾝ)			#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数は"-"で始まらない(ﾊﾟﾗﾒﾀ値)			#	
				#-----------------------------------------------#	
				shift												
				val=$1												
																	
				if [ -z "$val" ]; then								
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_INSTPATH="TRUE"								
				#-----------------------------------------------#	
				# 末尾がスラッシュなら削除						#	
				#-----------------------------------------------#	
				val_N=`$CMD_ECHO "$val" | $CMD_AWK -F"/" '{print NF}'`
				val_S=`$CMD_ECHO "$val" | $CMD_CUT -d"/" -f"$val_N"`
				if [ -z "$val_S" ]; then
					val_N=`$CMD_EXPR $val_N - 1`
					val_work=`$CMD_ECHO "$val" | $CMD_CUT -d"/" -f1-"$val_N"`
					if [ -n "$val_work" ]; then
						val=$val_work
					fi
				fi
				INSTPATH="$val"										
				;;													
		"-instpathhbsa")											
				#-----------------------------------------------#	
				# -instpathhbsa ｲﾝｽﾄｰﾙ先ﾃﾞｨﾚｸﾄﾘ2				#	
				#-----------------------------------------------#	
				if [ "$FLAG_INSTPATH_HBSA" == "TRUE" ]; then		
					message "KAPL09106"								
					exit 1											
				fi													
																	
				if [ $# -lt 2 ]; then								
					#-------------------------------------------#	
					# 次の引数無し								#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数有り									#	
				#-----------------------------------------------#	
				A=`echo "$2" | $CMD_GREP -E "^-"`					
				RC=$?												
																	
				if [ $RC -eq 0 ]; then								
					#-------------------------------------------#	
					# 次の引数は"-"で始まる(他のｵﾌﾟｼｮﾝ)			#	
					#-------------------------------------------#	
					message "KAPL09106"								
					exit 1											
				fi													
				#-----------------------------------------------#	
				# 次の引数は"-"で始まらない(ﾊﾟﾗﾒﾀ値)			#	
				#-----------------------------------------------#	
				shift												
				val=$1												
																	
				if [ -z "$val" ]; then								
					message "KAPL09106"								
					exit 1											
				fi													
																	
				FLAG_INSTPATH_HBSA="TRUE"							
				#-----------------------------------------------#	
				# 末尾がスラッシュなら削除						#	
				#-----------------------------------------------#	
				val_N=`$CMD_ECHO "$val" | $CMD_AWK -F"/" '{print NF}'`
				val_S=`$CMD_ECHO "$val" | $CMD_CUT -d"/" -f"$val_N"`
				if [ -z "$val_S" ]; then
					val_N=`$CMD_EXPR $val_N - 1`
					val_work=`$CMD_ECHO "$val" | $CMD_CUT -d"/" -f1-"$val_N"`
					if [ -n "$val_work" ]; then
						val=$val_work
					fi
				fi
				INSTPATH_HBSA="$val"								
				;;													
		*)		#-----------------------------------------------#	
				# ???											#	
				#-----------------------------------------------#	
				message "KAPL09106"									
				exit 1												
				;;													
		esac														
																	
		shift														
	done															
	#-----------------------------------------------------------#	
	# -h														#	
	#-----------------------------------------------------------#	
	if [ "$FLAG_H" == "TRUE" ]; then								
		if [ "$FLAG_V"             == "TRUE" ]  ||					
		   [ "$FLAG_S"             == "TRUE" ]  ||					
		   [ "$FLAG_P"             == "TRUE" ]  ||					
		   [ "$FLAG_F"             == "TRUE" ]  ||					
		   [ "$FLAG_INSTPATH"      == "TRUE" ]  ||					
		   [ "$FLAG_INSTPATH_HBSA" == "TRUE" ]; then				
			message "KAPL09106"										
			exit 1													
		fi															
																	
		usage														
		exit 0														
	fi																
	#-----------------------------------------------------------#	
	# -v														#	
	#-----------------------------------------------------------#	
	if [ "$FLAG_V" == "TRUE" ]; then								
		if [ "$FLAG_S"             == "TRUE" ]  ||					
		   [ "$FLAG_P"             == "TRUE" ]  ||					
		   [ "$FLAG_F"             == "TRUE" ]  ||					
		   [ "$FLAG_INSTPATH"      == "TRUE" ]  ||					
		   [ "$FLAG_INSTPATH_HBSA" == "TRUE" ]; then				
			message "KAPL09106"										
			exit 1													
		fi															
		return 0													
	fi																
	#-----------------------------------------------------------#	
	# -instpath													#	
	#-----------------------------------------------------------#	
	if [ "$FLAG_INSTPATH" == "TRUE" ]; then							
		#-------------------------------------------------------#	
		# checkDirName :										#	
		#-------------------------------------------------------#	
		checkDirName "-instpath" "$INSTPATH"						
		if [ "$FLAG_INSTPATH_HBSA" == "TRUE" ]; then
			if [ "$INSTPATH" == "$INSTPATH_HBSA" ]; then
				#-----------------------------------------------#	
				# HDLMとHBsAが同じpathで指定された				#	
				#-----------------------------------------------#	
				message "KAPL09279"									
				exit 1												
			fi
		fi
	fi																
	#-----------------------------------------------------------#	
	# -instpathhbsa												#	
	#-----------------------------------------------------------#	
	if [ "$FLAG_INSTPATH_HBSA" == "TRUE" ]; then					
		#-------------------------------------------------------#	
		# checkDirName :										#	
		#-------------------------------------------------------#	
		checkDirName "-instpathhbsa" "$INSTPATH_HBSA"				
		if [ "$FLAG_INSTPATH" == "TRUE" ]; then
			if [ "$INSTPATH" == "$INSTPATH_HBSA" ]; then
				#-----------------------------------------------#	
				# HDLMとHBsAが同じpathで指定された				#	
				#-----------------------------------------------#	
				message "KAPL09279"									
				exit 1												
			fi
		fi
	fi																
}
#option check function ends
#################################################################################
#																				#
# main :																		#
#																				#
#################################################################################
if [ $# -gt  0 ] ;  then
	option_check "$@"
	if [ "$FLAG_V" = "TRUE" ]; then
		message "KAPL09177"
		exit 0
	fi 
fi

#if [ ! -f $INSTALLHDLM_EXE ]; then
	#F-Doc 050401132 MOD start 
#	$CMD_ECHO "KAPL09121-E $INSTALLHDLM_EXE is not present at $INSTALLEXE_PATH."
	#F-Doc 050401132 MOD end
#	exit 1
#fi

#################################################################################
#																				#
# Header_Log :																	#
#																				#
#################################################################################
Header_Log()
{
	$CMD_ECHO "####################################################################################################" >> $1
	$CMD_ECHO "# HDLM Install Log <HDLM Version: $INSTALLHDLM_VERSION> <`$CMD_DATE`>"                                >> $1
	$CMD_ECHO "####################################################################################################" >> $1
	$CMD_ECHO "" >> $1
}

#################################################################################
#																				#
# End_Log :																		#
#																				#
#################################################################################
End_Log()
{
	$CMD_ECHO "" >> $1
	$CMD_ECHO "####################################################################################################" >> $1
	$CMD_ECHO "# HDLM Install Log End"                                                                               >> $1
	$CMD_ECHO "####################################################################################################" >> $1
}

#################################################################################
#																				#
# Log_Debug_Message :															#
#																				#
#################################################################################
Log_Debug_Message()
{
	if [ $4 == "COMMAND" ]; then
		TEST=`$CMD_BASENAME "$1"`
		TEST="$TEST $2"
	else
		TEST=$1
	fi
	$CMD_ECHO "****************************************************************************************************" >> $3
	$CMD_ECHO "Information : $TEST"                                                                                  >> $3
	$CMD_ECHO "====================================================================================================" >> $3
	if [ $4 == "COMMAND" ]; then
		TEMP="$1 $2"
		$TEMP >> $3 2>&1
	else
		$CMD_CAT $1 >> $3 2>&1
	fi
	$CMD_ECHO "" >> $3
	$CMD_ECHO "" >> $3
}

#################################################################################
#																				#
# Before_Install_Logs :															#
#																				#
#################################################################################
Before_Install_Logs()
{
	#Logging contents of "/proc/cpuinfo" to logfile
	Log_Debug_Message $PROC_CPUINFO_FILE "" $HDLM_LOGFILE "FILE"

	#Logging "uname -a" O/P to logfile
	Log_Debug_Message "$CMD_UNAME" "-a" $HDLM_LOGFILE "COMMAND"

	#Logging "rpm -qa" O/P to logfile
	Log_Debug_Message "$CMD_RPM" "-qa" $HDLM_LOGFILE "COMMAND"

	#Logging "mount" O/P to logfile
	Log_Debug_Message $CMD_MOUNT "" $HDLM_LOGFILE "COMMAND"

	#Logging "df -km" O/P to logfile
	Log_Debug_Message "$CMD_DF" "-k" $HDLM_LOGFILE "COMMAND"

	#Logging "pwd" O/P to logfile
	Log_Debug_Message "$CMD_PWD" "" $HDLM_LOGFILE "COMMAND"

	#Logging "pwd" O/P to logfile
	Log_Debug_Message "$CMD_DMESG" "" $HDLM_LOGFILE "COMMAND"

	if [ -f $REDHAT_RELEASE ]; then
		#Logging contents of "/etc/rc.d/rc.sysinit" to logfile
		Log_Debug_Message $RC_SYSINIT "" $HDLM_LOGFILE "FILE"

		#Logging contents of "/etc/rc.d/init.d/halt" to logfile
		Log_Debug_Message $HALT_FILE "" $HDLM_LOGFILE "FILE"
	elif [ -f $SUSE_RELEASE ]; then
		#Logging contents of "/etc/init.d/boot.local" to logfile
		Log_Debug_Message $BOOT_LOCAL "" $HDLM_LOGFILE "FILE"
	fi

	#Logging contents of "$MODULES_FILE" to logfile
	Log_Debug_Message $MODULES_FILE "" $HDLM_LOGFILE "FILE"

	#Logging license info to logfile
	Log_Debug_Message $VAR_LIC_FILE "" $HDLM_LOGFILE "FILE"
	Log_Debug_Message $ETC_LIC_FILE "" $HDLM_LOGFILE "FILE"

}

#################################################################################
#																				#
# After_Install_Logs :															#
#																				#
#################################################################################
After_Install_Logs()
{
	$CMD_ECHO "" >> $HDLM_LOGFILE
	$CMD_ECHO "" >> $HDLM_LOGFILE
	#Logging contents of different directories in logfile
	if [ -f $REDHAT_RELEASE -a $KERNEL_2_6 -eq 1 ] ; then
		Log_Debug_Message "$CMD_LS" "-altRZ $OPT_DMGR" $HDLM_LOGFILE "COMMAND"
		Log_Debug_Message "$CMD_LS" "-altRZ $OPT_HDVM" $HDLM_LOGFILE "COMMAND"
		Log_Debug_Message "$CMD_LS" "-altRZ $OPT_HITACHI" $HDLM_LOGFILE "COMMAND"
		Log_Debug_Message "$CMD_LS" "-altRZ $ETC_DMGR" $HDLM_LOGFILE "COMMAND"
		Log_Debug_Message "$CMD_LS" "-altRZ $VAR_TMP" $HDLM_LOGFILE "COMMAND"
		Log_Debug_Message "$CMD_LS" "-altRZ $ETC_RCD" $HDLM_LOGFILE "COMMAND"
	fi

	Log_Debug_Message "$CMD_LS" "-altR $OPT_DMGR" $HDLM_LOGFILE "COMMAND"
	Log_Debug_Message "$CMD_LS" "-altR $OPT_HDVM" $HDLM_LOGFILE "COMMAND"
	Log_Debug_Message "$CMD_LS" "-altR $OPT_HITACHI" $HDLM_LOGFILE "COMMAND"
	Log_Debug_Message "$CMD_LS" "-altR $ETC_DMGR" $HDLM_LOGFILE "COMMAND"
	Log_Debug_Message "$CMD_LS" "-altR $VAR_TMP" $HDLM_LOGFILE "COMMAND"

	if [ -f $REDHAT_RELEASE ] ; then
		Log_Debug_Message "$CMD_LS" "-altR $ETC_RCD" $HDLM_LOGFILE "COMMAND"
	elif [ -f $SUSE_RELEASE ] ; then
		Log_Debug_Message "$CMD_LS" "-altR $ETC_INITD" $HDLM_LOGFILE "COMMAND"
	fi

	#Logging "rpm -qa" O/P to logfile
	Log_Debug_Message "$CMD_RPM" "-qa" $HDLM_LOGFILE "COMMAND"

	#Logging "rpm -qi HDLM" O/P to logfile
	Log_Debug_Message "$CMD_RPM" "-qi HDLM" $HDLM_LOGFILE "COMMAND"

	#Logging "rpm -qlv HDLM" O/P to logfile
	Log_Debug_Message "$CMD_RPM" "-qlv HDLM" $HDLM_LOGFILE "COMMAND"
	
	#Logging "mount" O/P to logfile
	Log_Debug_Message $CMD_MOUNT "" $HDLM_LOGFILE "COMMAND"

	#Logging "df -km" O/P to logfile
	Log_Debug_Message "$CMD_DF" "-k" $HDLM_LOGFILE "COMMAND"

	if [ -f $REDHAT_RELEASE ]; then
		#Logging contents of "/etc/rc.d/rc.sysinit" to logfile
		Log_Debug_Message $RC_SYSINIT "" $HDLM_LOGFILE "FILE"

		#Logging contents of "/etc/rc.d/init.d/halt" to logfile
		Log_Debug_Message $HALT_FILE "" $HDLM_LOGFILE "FILE"
	elif [ -f $SUSE_RELEASE ]; then
		#Logging contents of "/etc/init.d/boot.local" to logfile
		Log_Debug_Message $BOOT_LOCAL "" $HDLM_LOGFILE "FILE"
	fi

	#Logging contents of "$MODULES_FILE" to logfile
	Log_Debug_Message $MODULES_FILE "" $HDLM_LOGFILE "FILE"
	
	#Logging contents of "ps -ef" to logfile
	Log_Debug_Message "$CMD_PS" "-ef" $HDLM_LOGFILE "COMMAND"
}

#################################################################################
#																				#
# rmtmpfiles : Function to remove temporary result and message files created	#
#			   for -f option. This function will be called during exit - Start.	#
#																				#
#################################################################################
rmtmpfiles()
{
STATUS=$?
trap "" EXIT 1 2 3 9 15

if [ -f $RESULTFILE -o -f $MESSAGEFILE -o -f $USR_LIC_PATH ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Removing temporary files." >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
	fi
fi
# Remove user lic file
if [ -f $USR_LIC_PATH ]; then
	$CMD_RM $USR_LIC_PATH >> /dev/null 2>&1
fi
# Remove analysis result output file
if [ -f  $RESULTFILE ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_RM $RESULTFILE >> $HDLM_LOGFILE 2>&1
	else
		$CMD_RM $RESULTFILE >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "Temporary file $RESULTFILE removed successfully." >> $HDLM_LOGFILE
		fi
	fi
fi
# Remove analysis message output file
if [ -f $MESSAGEFILE ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_RM $MESSAGEFILE >> $HDLM_LOGFILE 2>&1
	else
		$CMD_RM $MESSAGEFILE >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "Temporary file $MESSAGEFILE removed successfully." >> $HDLM_LOGFILE
		fi
	fi
fi

# Remove License Back-up files
if [ -f $HDLM_LICENSE_BAK ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_RM $HDLM_LICENSE_BAK  >> $HDLM_LOGFILE 2>&1
	else
		$CMD_RM $HDLM_LICENSE_BAK >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
                        $CMD_ECHO "Temporary file $HDLM_LICENSE_BAK removed successfully." >> $HDLM_LOGFILE
		fi
	fi
	
fi
if [ -f $DLM_LIC_BAK ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_RM $DLM_LIC_BAK  >> $HDLM_LOGFILE 2>&1
	else
		$CMD_RM $DLM_LIC_BAK >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
                        $CMD_ECHO "Temporary file $DLM_LIC_BAK removed successfully." >> $HDLM_LOGFILE
		fi
	fi
fi

if [ $STATUS -ne 0 ]; then
	D002_TEMP=`$CMD_LS $VAR_TMP/D002* 2>/dev/null`
	if [ -n "$D002_TEMP" ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_RM $VAR_TMP/D002*  >> $HDLM_LOGFILE 2>&1
		else
			$CMD_RM $VAR_TMP/D002* >> /dev/null 2>&1
		fi
		RET=$?
		if [ $RET -eq 0 ]; then
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Temporary file $D002_TEMP removed successfully." >> $HDLM_LOGFILE
			fi
		fi
	fi
fi

if [ -f $HCMDSLICENSE2_LOG ]; then
        if [ $FILE_CREATE -eq 0 ]; then
                $CMD_RM $HCMDSLICENSE2_LOG  >> $HDLM_LOGFILE 2>&1
        else
                $CMD_RM $HCMDSLICENSE2_LOG >> /dev/null 2>&1
        fi
        RET=$?
        if [ $RET -eq 0 ]; then
                if [ $FILE_CREATE -eq 0 ]; then
                        $CMD_ECHO "Temporary file $HCMDSLICENSE2_LOG removed successfully." >> $HDLM_LOGFILE
                fi
        fi
        
fi
if [ $BEFORE_FLAG -eq 1 ]; then
        AFTER_FILES=`$CMD_LS $VAR_TMP/rpm-tmp.* 2>/dev/null`
        for file in $AFTER_FILES
        do
                $CMD_ECHO $BEFORE_FILES | $CMD_GREP -w $file >/dev/null 2>&1
                RET=$?
                if [ $RET -ne 0 ]; then
                        $CMD_CAT $file 2>/dev/null | $CMD_GREP -I "KAPL09" >/dev/null 2>&1
                        RET1=$?
                        if [ $RET1 -eq 0 ]; then
                                $CMD_RM $file
                        fi
                fi
        done
fi
if [ $FILE_CREATE -eq 0 ]; then
	$CMD_ECHO "" >> $HDLM_LOGFILE
	$CMD_ECHO "" >> $HDLM_LOGFILE
	End_Log $HDLM_LOGFILE
fi
unset FROM_INSTALLHDLM
exit $STATUS
}
# Function to remove temporary result and message files created for -f option. This function will be called during exit - End.

trap "rmtmpfiles" EXIT 1 2 3 9 15

# Function to copy the user specified licensekeyfile/licensekey - Start
#################################################################################
#																				#
# getlicensekey : Function to copy the user specified licensekeyfile/licensekey	#
#																				#
#################################################################################
getlicensekey ()
{
COUNT=0
TMP_LINE=""
while read line
do
COUNT=`expr $COUNT + 1`
TMP_LINE=$line
if [ $COUNT -eq 1 ]; then
	if [ "$TMP_LINE" != "" ]; then
		TMP_LINE1=$TMP_LINE
		if [ -e $TMP_LINE ]; then
			if [ -f $TMP_LINE ]; then
				if [ "$TMP_LINE" == "$DEFAULT_HDLM_LICENSE" ]; then
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "Taking back up of user specified licensekey file to /tmp." >> $HDLM_LOGFILE
						$CMD_CP $TMP_LINE $HDLM_LICENSE_BAK >> $HDLM_LOGFILE 2>&1
					else
						$CMD_CP $TMP_LINE $HDLM_LICENSE_BAK >> /dev/null 2>&1
					fi
					RET=$?
					if [ $RET -eq 0 ]; then
						return 0	
					else
						message "KAPL09215" $ERR_CP_TO_HDLM_LICENSE_BAK
						message "KAPL09212" $INSTALLHDLM_STRING
						return 1
					fi
				else
					if [ ! -e $USR_LIC_PATH ]; then
						$CMD_ECHO $TMP_LINE > $USR_LIC_PATH 2>> /dev/null
						FROM_INSTALLHDLM=0
					fi
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "Copying user specified licensekeyfile to default location." >> $HDLM_LOGFILE	
						$CMD_CP $TMP_LINE $DEFAULT_HDLM_LICENSE	>>$HDLM_LOGFILE 2>&1
					else
						$CMD_CP $TMP_LINE $DEFAULT_HDLM_LICENSE >> /dev/null 2>&1
					fi
					RET=$?
					if [ $RET -eq 0 ]; then
						return 0
					else
						message "KAPL09215" $ERR_CP_USRLIC_TO_DEFAULT_HDLM_LICENSE
						message "KAPL09212" $INSTALLHDLM_STRING
						return 1
					fi
				fi
			else
				FLAG_NORMAL_FILE_CHECK=0
			fi
		else
			FLAG_FILE_EXISTS_CHECK=0
		fi
	else
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "licensekeyfile is not specified in user specified $SETUPFILE file" >> $HDLM_LOGFILE
		fi
	fi
elif [ $COUNT -eq 2 ]; then
	if [ "$TMP_LINE" != "" ]; then
		if [ -e $TMP_LINE ]; then
			if [ -f $TMP_LINE ]; then
				if [ "$TMP_LINE" == "$ETC_LIC_FILE" ]; then
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "Taking back up of user specified licensekey to /tmp." >> $HDLM_LOGFILE
						$CMD_CP $TMP_LINE $DLM_LIC_BAK >>$HDLM_LOGFILE 2>&1
					else
						$CMD_CP $TMP_LINE $DLM_LIC_BAK >> /dev/null 2>&1
					fi
					RET=$?
					if [ $RET -eq 0 ]; then
						return 0
					else
						message "KAPL09215" $ERR_CP_TO_DLM_LIC_BAK
						message "KAPL09212" $INSTALLHDLM_STRING
						return 1
					fi
				else
					if [ ! -e $USR_LIC_PATH ]; then
						$CMD_ECHO $TMP_LINE > $USR_LIC_PATH 2>> /dev/null
						FROM_INSTALLHDLM=1
					fi
					if [ ! -d  $ETC_DMGR ]; then
						if [ $FILE_CREATE -eq 0 ]; then
							$CMD_MKDIR $ETC_DMGR >>$HDLM_LOGFILE 2>&1
						else
							$CMD_MKDIR $ETC_DMGR >> /dev/null 2>&1
						fi
						RET=$?
					fi
					if [ $RET -eq 0 ]; then
						if [ $FILE_CREATE -eq 0 ]; then
							$CMD_ECHO "Copying user specified license key to default location." >> $HDLM_LOGFILE
							$CMD_CP $TMP_LINE $ETC_LIC_FILE >>$HDLM_LOGFILE 2>&1
						else
							$CMD_CP $TMP_LINE $ETC_LIC_FILE >> /dev/null 2>&1
						fi
						RET=$?
						if [ $RET -eq 0 ]; then
							return 0
						else
							message "KAPL09215" $ERR_CP_USRLIC_TO_ETC_LIC_FILE
							message "KAPL09212" $INSTALLHDLM_STRING
							return 1
						fi
					else
						message "KAPL09215" $ERR_MKDIR_ETC_DMGR
						message "KAPL09212" $INSTALLHDLM_STRING
						return 1
					fi
				fi
			else
				if [ $FLAG_FILE_EXISTS_CHECK -eq 0 ]; then
					message "KAPL09234" $TMP_LINE1
				fi
				if [ $FLAG_NORMAL_FILE_CHECK -eq 0 ]; then
					message "KAPL09238" "$TMP_LINE1, $TMP_LINE"
				else
					message "KAPL09238" $TMP_LINE
				fi
				message "KAPL09212" $INSTALLHDLM_STRING
				return 1	
			fi
		else
			if [ $FLAG_NORMAL_FILE_CHECK -eq 0 ]; then
				message "KAPL09238" $TMP_LINE1
			fi
			if [ $FLAG_FILE_EXISTS_CHECK -eq 0 ]; then
				message "KAPL09234" "$TMP_LINE1, $TMP_LINE"
			else
				message "KAPL09234" $TMP_LINE
			fi
			message "KAPL09212" $INSTALLHDLM_STRING
			return 1
		fi
	else
		# If only first line is mentioned in then give error message for only that line.
		if [ $FLAG_NORMAL_FILE_CHECK -eq 0 ]; then
			message "KAPL09238" $TMP_LINE1
			message "KAPL09212" $INSTALLHDLM_STRING
			return 1
		fi
		if [ $FLAG_FILE_EXISTS_CHECK -eq 0 ]; then
			message "KAPL09234" $TMP_LINE1
			message "KAPL09212" $INSTALLHDLM_STRING
			return 1
		fi
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "licensekey is not specified in user specified $SETUPFILE file" >> $HDLM_LOGFILE
		fi
		return 0
	fi
fi
done <$RESULTFILE
}
# Function to copy the user specified licensekeyfile/licensekey - End

#Function to set HDLM utilities as mentioned in setupfile specified by user - Start
#################################################################################
#																				#
# sethdlmutility : Function to set HDLM utilities as mentioned in setupfile		#
#				   specified by user											#
#																				#
#################################################################################
sethdlmutility ()
{
if [ -f $HDLM_LICENSE_BAK ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "Retrieve user specified license key file ' $DEFAULT_HDLM_LICENSE ' from ' $HDLM_LICENSE_BAK ' backup file." >> $HDLM_LOGFILE
		$CMD_CP $HDLM_LICENSE_BAK $DEFAULT_HDLM_LICENSE >> $HDLM_LOGFILE 2>&1
	else
		$CMD_CP $HDLM_LICENSE_BAK $DEFAULT_HDLM_LICENSE >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then	
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "User specified license key file has been retrieved successfully." >> $HDLM_LOGFILE
			$CMD_RM $HDLM_LICENSE_BAK >>$HDLM_LOGFILE 2>&1
		else
			$CMD_RM $HDLM_LICENSE_BAK >> /dev/null 2>&1
		fi
		RET=$?
		if [ $RET -ne 0 ]; then
			message "KAPL09215" $ERR_RM_HDLM_LICENSE_BAK
			return 1
		fi
	else
		message "KAPL09215" $ERR_CP_BACKUP_TO_DEFAULT_HDLM_LICENSE
		return 1
	fi
fi
if [ -f $DLM_LIC_BAK ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "Retrieving user specified license key file ' $ETC_LIC_FILE ' from ' $DLM_LIC_BAK ' backup file." >> $HDLM_LOGFILE
		$CMD_CP $DLM_LIC_BAK $ETC_LIC_FILE >> $HDLM_LOGFILE 2>&1
	else
		$CMD_CP $DLM_LIC_BAK $ETC_LIC_FILE >> /dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "User specified license key file has been retrieved successfully." >> $HDLM_LOGFILE
			$CMD_RM $DLM_LIC_BAK >>$HDLM_LOGFILE 2>&1
		else
			$CMD_RM $DLM_LIC_BAK >> /dev/null 2>&1
		fi
		RET=$?
		if [ $RET -ne 0 ]; then
			message "KAPL09215" $ERR_RM_DLM_LIC_BAK
			return 1
		fi
	else
		message "KAPL09215" $ERR_CP_BACKUP_TO_ETC_LIC_FILE
		return 1
	fi
fi
COUNT=0
SHUTDOWN="FALSE"
while read line
do
COUNT=`expr $COUNT + 1`
if [ $COUNT -gt 2 ]; then
	TMP_LINE=$line
	if [ $COUNT -eq 3 ]; then
		var=`$CMD_ECHO $TMP_LINE|$CMD_GREP [yY]`
		RET=$?
		DRIVER_YES=$TMP_LINE
		if [ $RET -eq 0 ]; then
			message "KAPL09210" $DRV_SETTINGS_STRING
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Inserting HDLM Alert driver" >> $HDLM_LOGFILE
			fi
			$ALERT_INSERT
			RET=$?
			if [ $RET -eq 0 ]; then
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Alert driver inserted successfully." >> $HDLM_LOGFILE
				fi
			else
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Could not insert Alert driver." >> $HDLM_LOGFILE
				fi
				DRIVER_CONFIG_FAIL=1
			fi
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Inserting HDLM Filter driver" >> $HDLM_LOGFILE
			fi
			$FILTER_INSERT
			RET=$?
			if [ $RET -eq 0 ]; then
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Filter driver inserted successfully." >> $HDLM_LOGFILE
				fi
			else
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Could not insert Filter driver." >> $HDLM_LOGFILE
				fi
				DRIVER_CONFIG_FAIL=1
			fi
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Configuring HDLM devices" >> $HDLM_LOGFILE
			fi
			if [ -x $CONFIGURE_DEVICES ]; then
				$CONFIGURE_DEVICES -r -s 
				RET=$?
				if [ $RET -eq 0 ]; then
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "HDLM devices configured successfully." >> $HDLM_LOGFILE
					fi
				else
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "HDLM devices configuration failed." >> $HDLM_LOGFILE
					fi
					 DRIVER_CONFIG_FAIL=1
				fi
			else
				message "KAPL09218" $DLMCFGMGR_STRING
				message "KAPL09212" $DRV_SETTINGS_STRING
				DRIVER_CONFIG_FAIL=0
				return 1
			fi
			if [ -x $DLMMGR ]; then
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Starting the HDLM Manager" >> $HDLM_LOGFILE
				fi
				$DLMMGR start
				RET=$?
				if [ $RET -ne 0 ]; then
					DRIVER_CONFIG_FAIL=1
				fi
			else
				MANAGER_EXISTS=1
			fi
			 
			# Log KAPLIDs for driver config execution
			if [ $DRIVER_CONFIG_FAIL -eq 0 ]; then
				message "KAPL09211" $DRV_SETTINGS_STRING
			else
				message "KAPL09213"  $DRV_SETTINGS_STRING
			fi
		else
			DLMMGR="$OPT_DMGR/bin/dlmmgr"
		fi
	elif [ $COUNT -eq 4 ]; then
		var=`$CMD_ECHO $TMP_LINE|$CMD_GREP [yY]`
		RET=$?
		if [ $RET -eq 0 ]; then
			SHUTDOWN="TRUE"
		fi
	elif [ $COUNT -gt 4 ]; then
		if [ $COUNT -eq 5 ]; then
			message "KAPL09210" $ENV_SETTINGS_STRING
			if [ "$DRIVER_YES" != "Y" -a "$DRIVER_YES" != "y" ]; then
				if [ -x $DLMMGR ]; then
					if [ $FILE_CREATE -eq 0 ]; then
						$CMD_ECHO "Starting the HDLM Manager" >> $HDLM_LOGFILE
					fi
					$DLMMGR -n &
				else
					MANAGER_EXISTS=1
				fi
			fi
			COUNTER=0
			if [ $MANAGER_EXISTS -eq 0 ]; then
				while [ "$COUNTER" -lt 20 ];
				do
					$CMD_SLEEP 5
					ps_val=`$CMD_PS -ef|$CMD_GREP "dlmmgr"| $CMD_GREP -v "grep"`
					RET=$?
					if [ $RET -eq 0 ]; then
						MANAGER_STARTED=1
						break;
					else
						COUNTER=`$CMD_EXPR $COUNTER + 1`
					fi
				done
			fi
		fi
		
		if [ "$TMP_LINE" != "" ]; then
			if [ -x $DLNKMGR ]; then 
				if [ "$DRIVER_YES" == "Y" -o "$DRIVER_YES" == "y" ]; then
					$TMP_LINE
				else
					TMP_LINE="$TMP_LINE -nodrv"
					$TMP_LINE
				fi
				RET=$?
			else
				message "KAPL09218" $DLNKMGR
				message "KAPL09212" $ENV_SETTINGS_STRING
				DRIVER_CONFIG_FAIL=0
				return 1
			fi
			if [ $RET -eq 0 ]; then
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Execution of command $TMP_LINE is successful" >> $HDLM_LOGFILE
				fi
			else
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "Execution of command $TMP_LINE is failed" >> $HDLM_LOGFILE
					DLNKMGR_FAIL=1
				fi
			fi
		fi
	fi
fi
done <$RESULTFILE

if [ $COUNT -gt 4 ]; then
	if [ "$DRIVER_YES" != "Y" -a "$DRIVER_YES" != "y" ]; then
		if [ $MANAGER_STARTED -eq 1 ]; then
			$DLMMGR -k
			RET=$?
			if [ $RET -eq 0 ]; then
				if [ $FILE_CREATE -eq 0 ]; then
					$CMD_ECHO "HDLM Manager is stopped successfully" >> $HDLM_LOGFILE
				fi
			else 
				DLNKMGR_FAIL=1
			fi
		fi
	fi
	if [ $DLNKMGR_FAIL -eq 0 ]; then
		message "KAPL09211" $ENV_SETTINGS_STRING
	else
		message "KAPL09213" $ENV_SETTINGS_STRING
	fi
fi

if [ "$SHUTDOWN" == "TRUE" ]; then
	if [ -f $CMD_SHUTDOWN ]; then
		message "KAPL09239"
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_SHUTDOWN -r now >>$HDLM_LOGFILE 2>&1
		else
			$CMD_SHUTDOWN -r now >>/dev/null 2>&1
		fi
	fi
fi
}
#Function to set HDLM utilities as mentioned in setupfile specified by user - End

RET=0
if [ ! -d $HDLM_INSTLOGDIR ]; then
	$CMD_MKDIR $HDLM_INSTLOGDIR > /dev/null 2>&1
	RET=$?
	if [ $RET -eq 0 ]; then	
		$CMD_CHMOD 0700 $HDLM_INSTLOGDIR > /dev/null 2>&1
		$CMD_CHOWN root:sys $HDLM_INSTLOGDIR > /dev/null 2>&1
		if [ $KERNEL_2_6 -eq 1 -a -f $REDHAT_RELEASE ]; then
			$CMD_CHCON system_u:object_r:tmp_t $HDLM_INSTLOGDIR > /dev/null 2>&1
		fi
	fi
fi

if [ $RET -eq 0 ]; then
	COUNTER=9
	if [ -f $HDLM_INSTLOGDIR"installhdlm10.log" ]; then
			$CMD_RM $HDLM_INSTLOGDIR"installhdlm10.log"
	fi
	while [ $COUNTER -gt 0 ]; do
		if [ $COUNTER -eq 9 ]; then			
			if [ -f $HDLM_INSTLOGDIR$INSTALLHDLM$COUNTER.log ]; then
				$CMD_MV -f $HDLM_INSTLOGDIR$INSTALLHDLM$COUNTER.log $HDLM_INSTLOGDIR"installhdlm10.log"
			fi
		else
			if [ -f $HDLM_INSTLOGDIR$INSTALLHDLM$COUNTER.log ]; then
				TMP_CNT=`$CMD_EXPR $COUNTER + 1`
				$CMD_MV -f $HDLM_INSTLOGDIR$INSTALLHDLM$COUNTER.log $HDLM_INSTLOGDIR$INSTALLHDLM$TMP_CNT.log
			fi
		fi
		COUNTER=`$CMD_EXPR $COUNTER - 1`
	done
	if [ -f $HDLM_LOGFILE ]; then
		$CMD_RM $HDLM_LOGFILE
	fi
	$CMD_TOUCH $HDLM_LOGFILE > /dev/null 2>&1
	if [ -f $HDLM_LOGFILE ]; then
		FILE_CREATE=0
	else
		FILE_CREATE=1
	fi
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_CHMOD 0444 $HDLM_LOGFILE > /dev/null 2>&1
		$CMD_CHOWN root:sys $HDLM_LOGFILE > /dev/null 2>&1
		if [ $KERNEL_2_6 -eq 1 -a -f $REDHAT_RELEASE ]; then
			$CMD_CHCON root:object_r:tmp_t $HDLM_LOGFILE > /dev/null 2>&1
		fi
		Header_Log $HDLM_LOGFILE
		Before_Install_Logs
	fi
fi

if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Installhdlm Starts" >> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
fi
message "KAPL09210" $INSTALLHDLM_STRING

# Checking of OS release files starts
if [ ! -f $SUSE_RELEASE ] && [ ! -f $REDHAT_RELEASE ]; then
    $CMD_ECHO "KAPL09003-E Cannot install in this system. Install HDLM on a supported OS."
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Distribution Check."                                      >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		$CMD_ECHO "KAPL09003-E Cannot install in this system. Install HDLM on a supported OS." >> $HDLM_LOGFILE

	fi
	message "KAPL09212" $INSTALLHDLM_STRING
	exit 1
fi
# Checking of OS release files ends
if [ -f $SUSE_RELEASE ]; then
	CMD_CUT="/usr/bin/cut"
else
	CMD_CUT="/bin/cut"
fi

INSTALLSCRIPT_PATH=`$CMD_ECHO $0 | $CMD_CUT -c -$DIFF_LENGTH`

BIN=bin
INSTALLEXE_PATH=$INSTALLSCRIPT_PATH$BIN    
TARGET_ARCH=`$CMD_UNAME -m`                    
if [ "$TARGET_ARCH" = "ia64" ];then                                 
	INSTALLHDLM_EXE=$INSTALLEXE_PATH/installhdlmipf            
	INSTALLHDLM_ANALYSIS_EXE=$INSTALLEXE_PATH/installhdlm_analysis_ipf
elif [ `$CMD_EXPR $TARGET_ARCH : \[i\]\[3-6\]\[8\]\[6\]` != 0 ] || [ "$TARGET_ARCH" = "x86_64" ]; then
	INSTALLHDLM_EXE=$INSTALLEXE_PATH/installhdlm  
	INSTALLHDLM_ANALYSIS_EXE=$INSTALLEXE_PATH/installhdlm_analysis
else
	$CMD_ECHO "KAPL09003-E Cannot install in this system. Install HDLM on a supported OS."
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Architecture Check."                                      >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		$CMD_ECHO "KAPL09003-E Cannot install in this system. Install HDLM on a supported OS." >> $HDLM_LOGFILE

	fi
	message "KAPL09212" $INSTALLHDLM_STRING
	exit 1
fi

# Handling for -f option starts
# Check for analysis setup file name path specified by user. If pathname starts with "-" then append "./" ahead. If path specified is not absolute then make it absolute.p0-
if [ "$FLAG_F" == "TRUE" ]; then
	if [ -e $SETUPFILE ]; then
		if [ -f $SETUPFILE ]; then
			case "$SETUPFILE" in
			-*) SETUPFILE="./$SETUPFILE" ;;
			*) ;;
			esac
			SETUPDIR=`$CMD_DIRNAME $SETUPFILE` 
			FILENAME=`$CMD_BASENAME $SETUPFILE` 
			PRESENT_DIR=`$CMD_PWD`
			if [ $FILE_CREATE -eq 0 ]; then
				cd $SETUPDIR >> $HDLM_LOGFILE 2>&1
			else
				cd $SETUPDIR >> /dev/null 2>&1
			fi
			PWD=`$CMD_PWD`
			SETUPFILE="$PWD/$FILENAME"
			if [ $FILE_CREATE -eq 0 ]; then
				cd $PRESENT_DIR >> $HDLM_LOGFILE 2>&1
			else
				cd $PRESENT_DIR >> /dev/null 2>&1
			fi
		else
			message "KAPL09238" $SETUPFILE
			message "KAPL09212" $INSTALLHDLM_STRING
			exit 1
		fi
	else
		message "KAPL09191"
		message "KAPL09212" $INSTALLHDLM_STRING
		exit 1
	fi
	if [ ! -x $INSTALLHDLM_ANALYSIS_EXE ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Installhdlm analysis Executable Check.">> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		fi
		message "KAPL09218" $INSTALLHDLM_ANALYSIS_STRING
		message "KAPL09212" $INSTALLHDLM_ANALYSIS_STRING
		message "KAPL09212" $INSTALLHDLM_STRING
		exit 1
	fi

	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Create Analysis output Result file and Analysis output Message file." >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		$CMD_TOUCH $RESULTFILE >>$HDLM_LOGFILE 2>&1
	else
		$CMD_TOUCH $RESULTFILE >>/dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Temporary file $RESULTFILE created successfully." >> $HDLM_LOGFILE
			fi
	fi
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_TOUCH $MESSAGEFILE >>$HDLM_LOGFILE 2>&1
	else
		$CMD_TOUCH $MESSAGEFILE >>/dev/null 2>&1
	fi
	RET=$?
	if [ $RET -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "Temporary file $MESSAGEFILE created successfully." >> $HDLM_LOGFILE
		fi
	fi
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Path of Installhdlm analysis binary file and given options." >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		$CMD_ECHO "Installhdlm Analysis will be executed from path = "$INSTALLHDLM_ANALYSIS_EXE", with argument = "$SETUPFILE $RESULTFILE $MESSAGEFILE" " >> $HDLM_LOGFILE
	fi
	message "KAPL09210" $INSTALLHDLM_ANALYSIS_STRING
	# Call installhdlm_analysis executable with 3 parameters.
	if [ "$FLAG_INSTPATH" == "TRUE" ]; then
		$INSTALLHDLM_ANALYSIS_EXE $SETUPFILE $RESULTFILE $MESSAGEFILE $INSTPATH 
	else
		$INSTALLHDLM_ANALYSIS_EXE $SETUPFILE $RESULTFILE $MESSAGEFILE $OPT_DMGR 
	fi
	RET_VAL=$?
	if [ $RET_VAL -ne 0 ]; then
		message "KAPL09212" $INSTALLHDLM_ANALYSIS_STRING
		message "KAPL09212" $INSTALLHDLM_STRING
	else
		message "KAPL09211" $INSTALLHDLM_ANALYSIS_STRING
	fi
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Contents of installation information setup file." >> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
			$CMD_CAT $SETUPFILE >> $HDLM_LOGFILE 2>&1
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Contents of Analysis Result Output File." >> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
			$CMD_CAT $RESULTFILE >> $HDLM_LOGFILE 2>&1
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Contents of Output Message Description File." >> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
			$CMD_CAT $MESSAGEFILE >> $HDLM_LOGFILE 2>&1
		fi
	if [ $RET_VAL -eq 0 ]; then
		if [ $FILE_CREATE -eq 0 ]; then
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "" >> $HDLM_LOGFILE
			$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
			$CMD_ECHO "Information : Calling getlicensekey function." >> $HDLM_LOGFILE
			$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		fi
		getlicensekey
		RET=$?
		if [ $RET -ne 0 ]; then
			if [ $FILE_CREATE -eq 0 ]; then
				$CMD_ECHO "Execution of getlicensekey function failed." >> $HDLM_LOGFILE
			fi
			exit 1
		fi
	else
		exit 1
	fi
fi
# Handling for -f option - End

if [ $FILE_CREATE -eq 0 ]; then
	$CMD_ECHO "" >> $HDLM_LOGFILE
	$CMD_ECHO "" >> $HDLM_LOGFILE
fi

if [ ! -f $INSTALLHDLM_EXE ]; then
	$CMD_ECHO "KAPL09121-E $INSTALLHDLM_EXE is not present at $INSTALLEXE_PATH."
	$CMD_ECHO "KAPL09212-E $INSTALLHDLM_STRING ended abnormally."
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Installhdlm Executable Check." >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		$CMD_ECHO "KAPL09121-E $INSTALLHDLM_EXE is not present at $INSTALLEXE_PATH." >> $HDLM_LOGFILE
		$CMD_ECHO "KAPL09212-E $INSTALLHDLM_STRING ended abnormally." >> $HDLM_LOGFILE
	fi
	exit 1
fi

$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
$CMD_ECHO "Information : Path of Installhdlm binary file and given options." >> $HDLM_LOGFILE
$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
$CMD_ECHO "Installhdlm will be executed from path = "$INSTALLHDLM_EXE", with argument = "$OPTIONS"" >> $HDLM_LOGFILE
$CMD_ECHO "" >> $HDLM_LOGFILE
$CMD_ECHO "" >> $HDLM_LOGFILE

$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
$CMD_ECHO "Information: Installation trace logs." >> $HDLM_LOGFILE
$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE

BEFORE_FILES=`$CMD_LS $VAR_TMP/rpm-tmp.* 2>/dev/null`
BEFORE_FLAG=1

#---------------------------------------------------------------------------#
#																			#
# installhdlm[ipf] :														#
#																			#
#---------------------------------------------------------------------------#
# $INSTALLHDLM_EXE $*
$INSTALLHDLM_EXE $OPTIONS
#F-Doc 050401127 ADD end
RET_VAL=$?

#-----------------------------------------------------------#
# ｲﾝｽﾄｰﾙ先ﾃﾞｨﾚｸﾄﾘを取得し，後続の処理で使用する。			#
#-----------------------------------------------------------#
newPath=""													
															
if [ -f $HDLM_Registry ]; then								
	newPath=`$CMD_GREP "HDLM_PROG_DIR" $HDLM_Registry | $CMD_AWK -F= '{print $2}'`
fi															
															
if [ -z "$newPath" ]; then									
	newPath="$OPT_DMGR"										
fi															
															
OPT_DMGR="$newPath"											
DLNKMGR="$OPT_DMGR/bin/dlnkmgr"								
DLMMGR="$OPT_DMGR/bin/dlmmgr"								
ALERT_INSERT="$OPT_DMGR/bin/dlminsadrv"						

# After successful HDLM installation remove licensekeys from the default locations if present
if [ $RET_VAL -eq 0 ]; then
	for i in $DEFAULT_HDLM_LICENSE $ETC_LIC_FILE
	do
	if [ -f $i ]; then
		$CMD_RM $i
	fi
	done
fi

if [ $RET_VAL == 0 ]; then
	$CMD_RPM -e HDLMhelp-en > /dev/null 2>&1
	$CMD_RPM -e HDLMhelp-jp > /dev/null 2>&1
fi

if [ $RET_VAL -eq 0 -a $FLAG_F == "TRUE" ]; then
	if [ $FILE_CREATE -eq 0 ]; then
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "" >> $HDLM_LOGFILE
		$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
		$CMD_ECHO "Information : Calling sethdlmutility function." >> $HDLM_LOGFILE
		$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
		sethdlmutility
		RET_VAL=$?
	fi
fi
if [ $FILE_CREATE -eq 0 ]; then
	After_Install_Logs
fi

if [ $FILE_CREATE -eq 0 ]; then
	$CMD_ECHO "" >> $HDLM_LOGFILE
	$CMD_ECHO "" >> $HDLM_LOGFILE
	$CMD_ECHO "****************************************************************************************************" >> $HDLM_LOGFILE
	$CMD_ECHO "Information : Installhdlm Ends" >> $HDLM_LOGFILE
	$CMD_ECHO "====================================================================================================" >> $HDLM_LOGFILE
fi

if [ $FLAG_F == "TRUE" ]; then
	if [ $DRIVER_CONFIG_FAIL -ne 0 -o $DLNKMGR_FAIL -ne 0 ]; then
		message "KAPL09213" $INSTALLHDLM_STRING
		exit $RET_VAL
	fi
fi
if [ $RET_VAL -eq 0 ]; then
	message "KAPL09211" $INSTALLHDLM_STRING
else
	message "KAPL09212" $INSTALLHDLM_STRING
fi
exit $RET_VAL
