You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2010/06/29 10:48:51 UTC
svn commit: r958878 - in /karaf/trunk/assembly/src/main:
distribution/unix-shell/bin/karaf filtered-resources/bin/admin
Author: gnodet
Date: Tue Jun 29 08:48:50 2010
New Revision: 958878
URL: http://svn.apache.org/viewvc?rev=958878&view=rev
Log:
KARAF-16: fix JAVA_HOME computation to make sure it works on various platforms
Modified:
karaf/trunk/assembly/src/main/distribution/unix-shell/bin/karaf
karaf/trunk/assembly/src/main/filtered-resources/bin/admin
Modified: karaf/trunk/assembly/src/main/distribution/unix-shell/bin/karaf
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/distribution/unix-shell/bin/karaf?rev=958878&r1=958877&r2=958878&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/distribution/unix-shell/bin/karaf (original)
+++ karaf/trunk/assembly/src/main/distribution/unix-shell/bin/karaf Tue Jun 29 08:48:50 2010
@@ -144,22 +144,23 @@ setupNativePath() {
export LD_LIBRARY_PATH
}
-pathCanonicalSimple() {
- local dst="${1}"
- cd -P -- "$(dirname -- "${dst}")" &> /dev/null && echo "$(pwd -P)/$(basename -- "${dst}")"
-}
-
pathCanonical() {
- local dst=`pathCanonicalSimple "${1}"`
- while [ -h "${dst}" ]; do
- local linkDst="$(ls -l "${dst}" | sed -e 's/^.*[[:space:]]*->[[:space:]]*\(.*\)[[:space:]]*$/\1/g')"
- if [ -z "$(echo "${linkDst}" | grep -E '^/')" ]; then
- # relative link destination
- linkDst="$(dirname "${dst}")/${linkDst}"
- fi
- dst=`pathCanonicalSimple "${linkDst}"`
- done
- echo "${dst}"
+ local dst="${1}"
+ while [ -h "${dst}" ] ; do
+ ls=`ls -ld "${dst}"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ dst="$link"
+ else
+ dst="`dirname "${dst}"`/$link"
+ fi
+ done
+ local bas=`basename "${dst}"`
+ local dir=`dirname "${dst}"`
+ if [ "$bas" != "$dir" ]; then
+ dst="`pathCanonical "$dir"`/$bas"
+ fi
+ echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g'
}
locateJava() {
@@ -172,6 +173,9 @@ locateJava() {
if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
fi
+ if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
if [ "x$JAVA" = "x" ]; then
if [ "x$JAVA_HOME" != "x" ]; then
if [ ! -d "$JAVA_HOME" ]; then
@@ -180,14 +184,15 @@ locateJava() {
JAVA="$JAVA_HOME/bin/java"
else
warn "JAVA_HOME not set; results may vary"
- JAVA=`which java`
+ JAVA=`type java`
+ JAVA=`expr "$JAVA" : '.*is \(.*\)$'`
if [ "x$JAVA" = "x" ]; then
die "java command not found"
fi
fi
fi
if [ "x$JAVA_HOME" = "x" ]; then
- JAVA_HOME=$(dirname $(pathCanonical "$JAVA"))
+ JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))"
fi
}
Modified: karaf/trunk/assembly/src/main/filtered-resources/bin/admin
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/filtered-resources/bin/admin?rev=958878&r1=958877&r2=958878&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/filtered-resources/bin/admin (original)
+++ karaf/trunk/assembly/src/main/filtered-resources/bin/admin Tue Jun 29 08:48:50 2010
@@ -143,6 +143,25 @@ setupNativePath() {
export LD_LIBRARY_PATH
}
+pathCanonical() {
+ local dst="${1}"
+ while [ -h "${dst}" ] ; do
+ ls=`ls -ld "${dst}"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ dst="$link"
+ else
+ dst="`dirname "${dst}"`/$link"
+ fi
+ done
+ local bas=`basename "${dst}"`
+ local dir=`dirname "${dst}"`
+ if [ "$bas" != "$dir" ]; then
+ dst="`pathCanonical "$dir"`/$bas"
+ fi
+ echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g'
+}
+
locateJava() {
# Setup the Java Virtual Machine
if $cygwin ; then
@@ -150,10 +169,13 @@ locateJava() {
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
+ if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then
+ JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
+ fi
+ if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
if [ "x$JAVA" = "x" ]; then
- if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then
- JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
- fi
if [ "x$JAVA_HOME" != "x" ]; then
if [ ! -d "$JAVA_HOME" ]; then
die "JAVA_HOME is not valid: $JAVA_HOME"
@@ -161,9 +183,16 @@ locateJava() {
JAVA="$JAVA_HOME/bin/java"
else
warn "JAVA_HOME not set; results may vary"
- JAVA="java"
+ JAVA=`type java`
+ JAVA=`expr "$JAVA" : '.*is \(.*\)$'`
+ if [ "x$JAVA" = "x" ]; then
+ die "java command not found"
+ fi
fi
fi
+ if [ "x$JAVA_HOME" = "x" ]; then
+ JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))"
+ fi
}
detectJVM() {