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