#!/bin/sh

# Licensed Materials - Property of IBM
# IBM Cognos Products: XQE
# (C) Copyright IBM Corp. 2009, 2022
# US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
JavaHomeError() {
	echo "Could not find path to java."
	echo "The environment variable JAVA_HOME is not defined or incorrectly defined."
	echo "Please define JAVA_HOME first."
	exit 1;
}

invalidInput() {
	echo "ERROR Encountered!! Invalid input value passed to utility QueryServiceAdminTask. For help use command [ queryServiceAdminTask.sh -help ] ."
}
help() {
	echo "."
	echo "Use the QueryServiceAdminTask to specify query service operations. This utility expects two input parameters:  TaskType(String Input) and TaskParameter(String Input)."
	echo "."
	echo "The first (mandatory) parameter, TaskType(String Input), identifies the type of operation. Use one of the following values. For TaskType 2, a file called SALDump.xml is created in the <c10_location>/logs/XQE folder."
	echo "."
	echo "."
	echo "------------------------------------------------------------------------"
	echo "1 - Clear Secure Cache."
	echo "2 - Write Secure Cache State."
	echo "------------------------------------------------------------------------"
	echo "."
	echo "."
	echo "The second (optional) parameter, TaskParameter(String Input), identifies the values used to perform the operation specified by the first parameter."
	echo "."
	echo "Use the format, \"<datasource_name>/<catalog_name>/<cube_name>\". You can use the wild card character \"*\" for any datasource, catalog, or cube name. For example, \"\\*/\\*/\\*\" or \"DS_TEMP/\\*/\\*\". When no input is used for this parameter, it uses the value \"*/*/*\" by default."
	echo "."
	echo "In this example, [ queryServiceAdminTask.sh 1 \"\\*/\\*/\\*\" ] the secured cache is cleared for all cubes in all catalogs under all datasources."
}
gotJava() {	
	J_OPTS=""
	RUNJAVA="$java_home/bin/java"				
	
	basename `pwd` | grep bin64
	if test $? -ne 0
	then
		JAVA_64BIT_OPTS="-d32"
	else 
		JAVA_64BIT_OPTS="-d64"
	fi

	CLASSPATH=".:../webapps/p2pd/WEB-INF/classes:../webapps/p2pd/WEB-INF/lib/cclcfgapi.jar:../webapps/p2pd/WEB-INF/lib/jaxen-1.1.1.jar:../webapps/p2pd/WEB-INF/lib/dom4j-2.1.1.jar:../webapps/p2pd/WEB-INF/lib/jcam_crypto.jar:../webapps/p2pd/WEB-INF/lib/jcam_jni.jar:../webapps/p2pd/WEB-INF/lib/CognosIPF.jar:../webapps/p2pd/WEB-INF/lib/xqeService.jar:../webapps/p2pd/WEB-INF/lib/hessian-3.0.20.jar:../webapps/p2pd/WEB-INF/lib/mx4j-tools.jar:../webapps/p2pd/WEB-INF/lib/CognosCCL4J.jar:../webapps/p2pd/WEB-INF/lib/commons-lang-2.6.jar:../webapps/p2pd/WEB-INF/lib/commons-configuration-1.9.jar:../webapps/p2pd/WEB-INF/lib/commons-logging-1.1.jar:../webapps/p2pd/WEB-INF/lib/commons-collections-3.2.2.jar:../webapps/p2pd/WEB-INF/lib/commons-httpclient-3.1.jar:../webapps/p2pd/WEB-INF/lib/commons-codec.jar:../webapps/p2pd/WEB-INF/lib/cclcoreutil.jar:../webapps/p2pd/WEB-INF/lib/zipi.jar:../webapps/p2pd/WEB-INF/lib:../webapps/p2pd/WEB-INF/lib/commons-discovery-0.2.jar:../webapps/p2pd/WEB-INF/lib/jaxrpc.jar:../webapps/p2pd/WEB-INF/lib/axis.jar:../webapps/p2pd/WEB-INF/lib/axisCrnpClient.jar:../webapps/p2pd/WEB-INF/lib/mfw4j.jar:../webapps/p2pd/WEB-INF/lib/commons-pool-1.3.jar:../webapps/p2pd/WEB-INF/lib/p2pd.jar:../webapps/p2pd/WEB-INF/lib/logkit-1.2.jar:../webapps/p2pd/WEB-INF/lib/commons-io-2.4.jar:../webapps/p2pd/WEB-INF/lib/trove-3.0.2.jar:../webapps/p2pd/WEB-INF/lib/mfwa4j.jar:../webapps/p2pd/WEB-INF/lib/commons-parquet.jar:../bin/slf4j-api-1.7.35.jar:../bin/slf4j-nop-1.7.35.jar:../webapps/p2pd/WEB-INF/lib/bcprov.jar:../webapps/p2pd/WEB-INF/lib/bcpkix.jar:../webapps/p2pd/WEB-INF/lib/commons-configuration2.jar:../webapps/p2pd/WEB-INF/lib/commons-lang3.jar:../webapps/p2pd/WEB-INF/lib/commons-beanutils.jar:../webapps/p2pd/WEB-INF/lib/flint-launcher.jar:../webapps/p2pd/WEB-INF/lib/config-api.jar:../webapps/p2pd/WEB-INF/lib/config-core.jar:../webapps/p2pd/WEB-INF/lib/archaius-core.jar:../webapps/p2pd/WEB-INF/lib/guava-15.0-cdi1.0.jar:../webapps/p2pd/WEB-INF/lib/icu4j.jar:../webapps/p2pd/WEB-INF/lib/i18nj.jar:../webapps/p2pd/WEB-INF/lib/parquet-hadoop-isv.jar:../webapps/p2pd/WEB-INF/lib/log4j-api-2.17.1.jar:../webapps/p2pd/WEB-INF/lib/log4j-core-2.17.1.jar:../webapps/p2pd/WEB-INF/lib/log4j-over-slf4j-1.7.35.jar"
	echo "Using CLASSPATH: $CLASSPATH"
	echo "Using J_HOME:    $java_home"
	echo "Using J_OPTS:    $J_OPTS"	
	param1=$1
	param2=$2
	J_OPTS="$JAVA_64BIT_OPTS $J_OPTS"
	echo "\nCommand:" "$RUNJAVA" "$J_OPTS" -cp "$CLASSPATH"  com.cognos.xqebifw.adminconsole.commandlineutility.QueryServiceAdminTask $1 $2 
	"$RUNJAVA" "$J_OPTS" -cp "$CLASSPATH"  com.cognos.xqebifw.adminconsole.commandlineutility.QueryServiceAdminTask $1 $2 
	exit $?


}
findJava() {	
	java_home="../ibm-jre/jre"
	if [ -f "$java_home/bin/java" ]
	then
		gotJava $*;	
	else 	
		if [ -z "$JAVA_HOME" ]
		then
			JavaHomeError;
		else
			java_home="$JAVA_HOME"
			echo Looking for JRE in: "$java_home/bin..."
			if [ -f "$java_home/bin/java" ]
			then			
				gotJava $*;			
			else 
				java_home="$JAVA_HOME/jre"
				echo Looking for JRE in: "$java_home/bin..."
				if [ -f "$java_home/bin/java" ]
				then				
					gotJava $*;	
				else 
					JavaHomeError;
				fi
			fi
		fi
	fi		
}

OS_NAME=`uname`

	case "$OS_NAME" in
	"Linux"|"SunOS") 
		if [ -z "$LD_LIBRARY_PATH" ]
		then
			LD_LIBRARY_PATH=.
		else
			LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"
		fi
		export LD_LIBRARY_PATH
		;;
        "AIX") 
		if [ -z "$LIBPATH" ]
		then
			LIBPATH=.
		else
			LIBPATH=".:$LIBPATH"
		fi
		export LIBPATH
		;;
	"HP-UX")
		if [ -z "$SHLIB_PATH" ]
		then
			SHLIB_PATH=.
		else
			SHLIB_PATH=".:$SHLIB_PATH"
		fi
		export SHLIB_PATH
		;;   
	esac

if [ -z "$1" ]
then
 invalidInput;
else
	case $1 in 
	"1") findJava $*;;
		
	"2") findJava $*;;	
	"-help") help;;
	*) invalidInput;;	
	esac   
fi