blob: 5635ed9b7b78813ae5795ee3f94cab129780700c [file] [log] [blame]
#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
realpath() {
# Use in priority xpg4 awk or nawk on SunOS as standard awk is outdated
AWK=awk
if ${solaris}; then
if [ -x /usr/xpg4/bin/awk ]; then
AWK=/usr/xpg4/bin/awk
elif [ -x /usr/bin/nawk ]; then
AWK=/usr/bin/nawk
fi
fi
READLINK_EXISTS=`command -v readlink &> /dev/null`
BINARY_NAME=`basename "${1}"`
if [ -z "$READLINK_EXISTS" ]; then
OURPWD="`pwd`"
cd "`dirname "${1}"`" || exit 2
LINK=`ls -l "${BINARY_NAME}" | ${AWK} -F"-> " '{print $2}'`
while [ "${LINK}" ]; do
echo "link: ${LINK}" >&2
cd "`dirname "${LINK}"`" || exit 2
LINK=`ls -l "${BINARY_NAME}" | ${AWK} -F"-> " '{print $2}'`
done
REALPATH="`pwd`/${BINARY_NAME}"
cd "${OURPWD}" || exit 2
echo "${REALPATH}"
else
OURPWD="`pwd`"
cd "`dirname "${1}"`" || exit 2
LINK=`readlink "${BINARY_NAME}"`
while [ "${LINK}" ]; do
echo "link: ${LINK}" >&2
cd "`dirname "${LINK}"`" || exit 2
LINK=`readlink "${BINARY_NAME}"`
done
REALPATH="`pwd`/${BINARY_NAME}"
cd "${OURPWD}" || exit 2
echo "${REALPATH}"
fi
}
REALNAME=`realpath "$0"`
DIRNAME=`dirname "${REALNAME}"`
PROGNAME=`basename "${REALNAME}"`
#
# Load common functions
#
. "${DIRNAME}/inc"
#
# Sourcing environment settings for karaf similar to tomcats setenv
#
if [ "x${KARAF_SCRIPT}" = "x" ]; then
KARAF_SCRIPT="${PROGNAME}"
export KARAF_SCRIPT
fi
if [ -f "${DIRNAME}/setenv" ]; then
. "${DIRNAME}/setenv"
fi
setupClassPath() {
# Setup classpath
CLASSPATH="${KARAF_HOME}/system/org/apache/karaf/shell/org.apache.karaf.shell.core/@@project.version@@/org.apache.karaf.shell.core-@@project.version@@.jar"
CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/@@pax.logging.version@@/pax-logging-api-@@pax.logging.version@@.jar"
CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
CLASSPATH="${CLASSPATH}:${KARAF_HOME}/lib/boot/osgi.core-@@osgi.version@@.jar"
}
init() {
# Determine if there is special OS handling we must perform
detectOS
# Unlimit the number of file descriptors if possible
unlimitFD
# Locate the Karaf home directory
locateHome
# Locate the Karaf base directory
locateBase
# Locate the Karaf data directory
locateData
# Locate the Karaf etc directory
locateEtc
# Locate the Karaf log directory
locateLog
# Setup the native library path
setupNativePath
# Locate the Java VM to execute
locateJava
# Determine the JVM vendor
detectJVM
# Setup default options
setupDefaults
# Setup classpath
setupClassPath
# Install debug options
setupDebugOptions
}
run() {
convertPaths
exec "${JAVA}" ${JAVA_OPTS} \
-Dkaraf.instances="${KARAF_HOME}/instances" \
-Dkaraf.home="${KARAF_HOME}" \
-Dkaraf.base="${KARAF_BASE}" \
-Dkaraf.etc="${KARAF_ETC}" \
-Dkaraf.log="${KARAF_LOG}" \
-Dkaraf.data="${KARAF_DATA}" \
-Djava.io.tmpdir="${KARAF_DATA}/tmp" \
-Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
${KARAF_OPTS} \
${OPTS} \
-classpath "${CLASSPATH}" \
org.apache.karaf.shell.impl.console.standalone.Main --classpath="$KARAF_HOME/system" "$@"
}
main() {
init
run "$@"
}
main "$@"