| #!/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. |
| |
| if [ -n "$derby_common_debug" ] ; then |
| set -x |
| fi |
| |
| # OS specific support. $var _must_ be set to either true or false. |
| cygwin=false; |
| darwin=false; |
| case "`uname`" in |
| CYGWIN*) cygwin=true ;; |
| Darwin*) darwin=true |
| if [ -z "$JAVA_HOME" ] ; then |
| JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home |
| fi |
| ;; |
| esac |
| |
| if [ -z "$DERBY_HOME" -o ! -d "$DERBY_HOME" ] ; then |
| ## resolve links - $0 may be a link to derby's home |
| PRG="$0" |
| progname=`basename "$0"` |
| |
| # need this for relative symlinks |
| while [ -h "$PRG" ] ; do |
| ls=`ls -ld "$PRG"` |
| link=`expr "$ls" : '.*-> \(.*\)$'` |
| if expr "$link" : '/.*' > /dev/null; then |
| PRG="$link" |
| else |
| PRG=`dirname "$PRG"`"/$link" |
| fi |
| done |
| |
| DERBY_HOME=`dirname "$PRG"`/.. |
| |
| # make it fully qualified |
| DERBY_HOME=`cd "$DERBY_HOME" && pwd` |
| fi |
| |
| # For Cygwin, ensure paths are in UNIX format before anything is touched |
| if $cygwin ; then |
| [ -n "$DERBY_HOME" ] && |
| DERBY_HOME=`cygpath --unix "$DERBY_HOME"` |
| [ -n "$JAVA_HOME" ] && |
| JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
| fi |
| |
| # set DERBY_LIB location |
| DERBY_LIB="${DERBY_HOME}/lib" |
| |
| if [ -z "$JAVACMD" ] ; then |
| if [ -n "$JAVA_HOME" ] ; then |
| if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| # IBM's JDK on AIX uses strange locations for the executables |
| JAVACMD="$JAVA_HOME/jre/sh/java" |
| else |
| JAVACMD="$JAVA_HOME/bin/java" |
| fi |
| else |
| JAVACMD=`which java 2> /dev/null ` |
| if [ -z "$JAVACMD" ] ; then |
| JAVACMD=java |
| fi |
| fi |
| fi |
| |
| if [ ! -x "$JAVACMD" ] ; then |
| echo "Error: JAVA_HOME is not defined correctly." |
| echo " We cannot execute $JAVACMD" |
| exit 1 |
| fi |
| |
| # set local classpath, don't overwrite the user's |
| LOCALCLASSPATH=$DERBY_LIB/derby.jar:$DERBY_LIB/derbynet.jar:$DERBY_LIB/derbytools.jar:$DERBY_LIB/derbyoptionaltools.jar:$DERBY_LIB/derbyclient.jar |
| |
| |
| # if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be |
| # user CLASSPATH first and derby-found jars after. |
| # In that case, the user CLASSPATH will override derby-found jars |
| # |
| # if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour |
| # with derby-found jars first and user CLASSPATH after |
| if [ -n "$CLASSPATH" ] ; then |
| # merge local and specified classpath |
| if [ -z "$LOCALCLASSPATH" ] ; then |
| LOCALCLASSPATH="$CLASSPATH" |
| elif [ -n "$CLASSPATH_OVERRIDE" ] ; then |
| LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH" |
| else |
| LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH" |
| fi |
| |
| # remove class path from launcher -cp option |
| CLASSPATH="" |
| fi |
| |
| # For Cygwin, switch paths to appropriate format before running java |
| # For PATHs convert to unix format first, then to windows format to ensure |
| # both formats are supported. Probably this will fail on directories with ; |
| # in the name in the path. Let's assume that paths containing ; are more |
| # rare than windows style paths on cygwin. |
| if $cygwin; then |
| if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then |
| format=mixed |
| else |
| format=windows |
| fi |
| DERBY_HOME=`cygpath --$format "$DERBY_HOME"` |
| DERBY_LIB=`cygpath --$format "$DERBY_LIB"` |
| if [ -n "$JAVA_HOME" ]; then |
| JAVA_HOME=`cygpath --$format "$JAVA_HOME"` |
| fi |
| LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"` |
| LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"` |
| if [ -n "$CLASSPATH" ] ; then |
| CP_TEMP=`cygpath --path --unix "$CLASSPATH"` |
| CLASSPATH=`cygpath --path --$format "$CP_TEMP"` |
| fi |
| CYGHOME=`cygpath --$format "$HOME"` |
| fi |
| |
| # add a second backslash to variables terminated by a backslash under cygwin |
| if $cygwin; then |
| case "$DERBY_HOME" in |
| *\\ ) |
| DERBY_HOME="$DERBY_HOME\\" |
| ;; |
| esac |
| case "$CYGHOME" in |
| *\\ ) |
| CYGHOME="$CYGHOME\\" |
| ;; |
| esac |
| case "$LOCALCLASSPATH" in |
| *\\ ) |
| LOCALCLASSPATH="$LOCALCLASSPATH\\" |
| ;; |
| esac |
| case "$CLASSPATH" in |
| *\\ ) |
| CLASSPATH="$CLASSPATH\\" |
| ;; |
| esac |
| fi |
| |
| # Readjust classpath for MKS |
| # expr match |
| if [ \( "`expr $SHELL : '.*sh.exe$'`" -gt 0 \) -a \( "$cygwin" = "false" \) ]; then |
| LOCALCLASSPATH=`echo $LOCALCLASSPATH | sed -E 's/([\d\w]*):([\d\w]*)/\1;\2/g |
| '` |
| fi |