_script-util.sh revision 3824
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#!/bin/sh
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# CDDL HEADER START
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# The contents of this file are subject to the terms of the
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# Common Development and Distribution License, Version 1.0 only
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# (the "License"). You may not use this file except in compliance
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# with the License.
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# You can obtain a copy of the license at
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# trunk/opends/resource/legal-notices/OpenDS.LICENSE
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# See the License for the specific language governing permissions
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# and limitations under the License.
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# When distributing Covered Code, include this CDDL HEADER in each
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# file and include the License file at
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# add the following below this CDDL HEADER, with the fields enclosed
f71f7a61dec7c9089378d14493ad564a1dedf0b5neil_a_wilson# by brackets "[]" replaced with your own identifying information:
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# Portions Copyright [yyyy] [name of copyright owner]
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# CDDL HEADER END
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
a3d3ab94806056d2355afea6fe8daac41059b9fbludovicp# Copyright 2008 Sun Microsystems, Inc.
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson# function that sets the java home
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson#
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilsonset_java_home_and_args() {
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson if test -f "${INSTANCE_ROOT}/lib/set-java-home"
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson then
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson . "${INSTANCE_ROOT}/lib/set-java-home"
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson fi
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson if test -z "${OPENDS_JAVA_BIN}"
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson then
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson if test -z "${OPENDS_JAVA_HOME}"
014019918f7e3844f558f6159b8d41517254edc2lutoff then
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson if test -z "${JAVA_BIN}"
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson then
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson if test -z "${JAVA_HOME}"
3cedecd5ea21cca5d9709abf320a2082cd3694e5jvergara then
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson OPENDS_JAVA_BIN=`which java 2> /dev/null`
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson if test ${?} -eq 0
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson then
014019918f7e3844f558f6159b8d41517254edc2lutoff export OPENDS_JAVA_BIN
014019918f7e3844f558f6159b8d41517254edc2lutoff else
014019918f7e3844f558f6159b8d41517254edc2lutoff echo "Please set OPENDS_JAVA_HOME to the root of a Java 5 (or later) installation"
014019918f7e3844f558f6159b8d41517254edc2lutoff echo "or edit the java.properties file and then run the dsjavaproperties script to"
014019918f7e3844f558f6159b8d41517254edc2lutoff echo "specify the java version to be used"
014019918f7e3844f558f6159b8d41517254edc2lutoff exit 1
014019918f7e3844f558f6159b8d41517254edc2lutoff fi
014019918f7e3844f558f6159b8d41517254edc2lutoff else
014019918f7e3844f558f6159b8d41517254edc2lutoff OPENDS_JAVA_BIN="${JAVA_HOME}/bin/java"
014019918f7e3844f558f6159b8d41517254edc2lutoff export OPENDS_JAVA_BIN
014019918f7e3844f558f6159b8d41517254edc2lutoff fi
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson else
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson OPENDS_JAVA_BIN="${JAVA_BIN}"
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson export OPENDS_JAVA_BIN
69de0fe5b7ed905860bef5f86937d30cc206ef7dneil_a_wilson fi
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara else
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara OPENDS_JAVA_BIN="${OPENDS_JAVA_HOME}/bin/java"
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara export OPENDS_JAVA_BIN
014019918f7e3844f558f6159b8d41517254edc2lutoff fi
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara fi
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara}
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara# Determine whether the detected Java environment is acceptable for use.
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilsontest_java() {
0cf0e19d7abb0e7659df6d191269f96b3ffe7f45neil_a_wilson if test -z "${OPENDS_JAVA_ARGS}"
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara then
27f8adec83293fb8bd3bfa37175322b0ee3bb933jvergara "${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t 2> /dev/null
RESULT_CODE=${?}
if test ${RESULT_CODE} -eq 13
then
# This is a particular error code that means that the Java version is 5
# but not supported. Let InstallDS to display the localized error message
"${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t
exit 1
elif test ${RESULT_CODE} -ne 0
then
echo "ERROR: The detected Java version could not be used. The detected"
echo "java binary is:"
echo "${OPENDS_JAVA_BIN}"
echo "You must specify the path to a valid Java 5.0 or higher version."
echo "The procedure to follow is:"
echo "1. Delete the file ${INSTANCE_ROOT}/lib/set-java-home" if it exists.
echo "2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid "
echo "Java 5.0 installation."
echo "If you want to have specific java settings for each command line you must"
echo "follow the steps 3 and 4."
echo "3. Edit the properties file specifying the java binary and the java arguments"
echo "for each command line. The java properties file is located in:"
echo "${INSTANCE_ROOT}/config/java.properties."
echo "4. Run the command-line ${INSTANCE_ROOT}/bin/dsjavaproperties"
exit 1
fi
else
"${OPENDS_JAVA_BIN}" ${OPENDS_JAVA_ARGS} org.opends.server.tools.InstallDS -t 2> /dev/null
RESULT_CODE=${?}
if test ${RESULT_CODE} -eq 13
then
# This is a particular error code that means that the Java version is 5
# but not supported. Let InstallDS to display the localized error message
"${OPENDS_JAVA_BIN}" org.opends.server.tools.InstallDS -t
exit 1
elif test ${RESULT_CODE} -ne 0
then
echo "ERROR: The detected Java version could not be used with the set of java"
echo "arguments ${OPENDS_JAVA_ARGS}."
echo "The detected java binary is:"
echo "${OPENDS_JAVA_BIN}"
echo "You must specify the path to a valid Java 5.0 or higher version."
echo "The procedure to follow is:"
echo "1. Delete the file ${INSTANCE_ROOT}/lib/set-java-home" if it exists.
echo "2. Set the environment variable OPENDS_JAVA_HOME to the root of a valid "
echo "Java 5.0 installation."
echo "If you want to have specific java settings for each command line you must"
echo "follow the steps 3 and 4."
echo "3. Edit the properties file specifying the java binary and the java arguments"
echo "for each command line. The java properties file is located in:"
echo "${INSTANCE_ROOT}/config/java.properties."
echo "4. Run the command-line ${INSTANCE_ROOT}/bin/dsjavaproperties"
exit 1
fi
fi
}
# Explicitly set the PATH, LD_LIBRARY_PATH, LD_PRELOAD, and other important
# system environment variables for security and compatibility reasons.
set_environment_vars() {
PATH=/bin:/usr/bin
LD_LIBRARY_PATH=
LD_LIBRARY_PATH_32=
LD_LIBRARY_PATH_64=
LD_PRELOAD=
LD_PRELOAD_32=
LD_PRELOAD_64=
export PATH LD_LIBRARY_PATH LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64 \
LD_PRELOAD LD_PRELOAD_32 LD_PRELOAD_34
SCRIPT_NAME_ARG=-Dorg.opends.server.scriptName=${SCRIPT_NAME}
export SCRIPT_NAME_ARG
}
# Configure the appropriate CLASSPATH.
set_classpath() {
CLASSPATH=${INSTANCE_ROOT}/classes
for JAR in ${INSTALL_ROOT}/lib/*.jar
do
CLASSPATH=${CLASSPATH}:${JAR}
done
if [ "${INSTANCE_ROOT}" != "${INSTANCE_ROOT}" ]
then
for JAR in ${INSTANCE_ROOT}/lib/*.jar
do
CLASSPATH=${CLASSPATH}:${JAR}
done
fi
export CLASSPATH
}
if test "${INSTALL_ROOT}" = ""
then
# Capture the current working directory so that we can change to it later.
# Then capture the location of this script and the Directory Server instance
# root so that we can use them to create appropriate paths.
WORKING_DIR=`pwd`
cd "`dirname "${0}"`"
cd ..
INSTALL_ROOT=`pwd`
if cat ${INSTALL_ROOT}/instance.loc | grep '^/' > /dev/null
then
INSTANCE_ROOT=`cat ${INSTALL_ROOT}/instance.loc`
export INSTANCE_ROOT
else
INSTANCE_ROOT=${INSTALL_ROOT}/`cat ${INSTALL_ROOT}/instance.loc`
export INSTANCE_ROOT
fi
cd "${WORKING_DIR}"
fi
if test "${SCRIPT_UTIL_CMD}" = "set-full-environment-and-test-java"
then
set_java_home_and_args
set_environment_vars
set_classpath
test_java
elif test "${SCRIPT_UTIL_CMD}" = "set-full-environment"
then
set_java_home_and_args
set_environment_vars
set_classpath
elif test "${SCRIPT_UTIL_CMD}" = "set-java-home-and-args"
then
set_java_home_and_args
elif test "${SCRIPT_UTIL_CMD}" = "set-environment-vars"
then
set_environment_vars
elif test "${SCRIPT_UTIL_CMD}" = "set-classpath"
then
set_classpath
elif test "${SCRIPT_UTIL_CMD}" = "test-java"
then
test_java
fi