blob: 326fe2d08a89301b77b74927a5fedcb1aa4dd6f2 [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.
#
# resolve symlinks
#
PRG=$0
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '^.*-> \(.*\)$' 2>/dev/null`
if expr "$link" : '^/' 2> /dev/null >/dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
progdir=`dirname "$PRG"`
APPNAME=`basename "$PRG"`
case "`uname`" in
Darwin*)
# set default userdir and cachedir on Mac OS X
DEFAULT_USERDIR_ROOT="${HOME}/Library/Application Support/NetBeans/${APPNAME}"
DEFAULT_CACHEDIR_ROOT=${HOME}/Library/Caches/NetBeans/${APPNAME}
;;
*)
# set default userdir and cachedir on unix systems
DEFAULT_USERDIR_ROOT=${HOME}/.netbeans/${APPNAME}
DEFAULT_CACHEDIR_ROOT=${HOME}/.cache/netbeans/${APPNAME}
;;
esac
if [ -f "$progdir/../etc/$APPNAME".conf ] ; then
. "$progdir/../etc/$APPNAME".conf
fi
# XXX does not correctly deal with spaces in non-userdir params
args=""
case "`uname`" in
Darwin*)
if [ ! -z "$default_mac_userdir" ]; then
userdir="${default_mac_userdir}"
else
userdir="${default_userdir}"
fi
;;
*)
userdir="${default_userdir}"
;;
esac
while [ $# -gt 0 ] ; do
case "$1" in
--userdir) shift; if [ $# -gt 0 ] ; then userdir="$1"; fi
;;
*) args="$args \"$1\""
;;
esac
shift
done
if [ -f "${userdir}/etc/$APPNAME".conf ] ; then
. "${userdir}/etc/$APPNAME".conf
fi
if [ -n "$jdkhome" -a \! -d "$jdkhome" -a -d "$progdir/../$jdkhome" ]; then
# #74333: permit jdkhome to be defined as relative to app dir
jdkhome="$progdir/../$jdkhome"
fi
readClusters() {
if [ -x /usr/ucb/echo ]; then
echo=/usr/ucb/echo
else
echo=echo
fi
while read X; do
if [ "$X" \!= "" ]; then
$echo "$progdir/../$X"
fi
done
}
absolutize_paths() {
while read path; do
if [ -d "$path" ]; then
(cd "$path" 2>/dev/null && pwd)
else
echo "$path"
fi
done
}
clusters=`(cat "$progdir/../etc/$APPNAME".clusters; echo) | readClusters | absolutize_paths | tr '\012' ':'`
if [ ! -z "$extra_clusters" ] ; then
clusters="$clusters:$extra_clusters"
fi
nbexec=`echo "$progdir"/../platform*/lib/nbexec`
case "`uname`" in
Darwin*)
eval exec sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
-J-Xdock:name='"$APPNAME"' \
'"-J-Xdock:icon=$progdir/../../$APPNAME.icns"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
;;
*)
sh=sh
# #73162: Ubuntu uses the ancient Bourne shell, which does not implement trap well.
if [ -x /bin/bash ]
then
sh=/bin/bash
fi
eval exec $sh '"$nbexec"' \
--jdkhome '"$jdkhome"' \
--clusters '"$clusters"' \
--userdir '"${userdir}"' \
${default_options} \
"$args"
exit 1
;;
esac