#!/bin/sh
# The contents of this file are subject to the terms of the Common Development
# and Distribution License (the License). You may not use this file except in
# compliance with the License.
# 
# You can obtain a copy of the License at http://www.netbeans.org/cddl.html
# or http://www.netbeans.org/cddl.txt.
# 
# When distributing Covered Code, include this CDDL Header Notice in each file
# and include the License file at http://www.netbeans.org/cddl.txt.
# If applicable, add the following below the CDDL Header, with the fields
# enclosed by brackets [] replaced by your own identifying information:
# "Portions Copyrighted [year] [name of copyright owner]"
# 
# The Original Software is NetBeans. The Initial Developer of the Original
# Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
# Microsystems, Inc. All Rights Reserved.

#
# 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"`

if [ -f "$progdir"/../etc/netbeans.conf ] ; then
    . "$progdir"/../etc/netbeans.conf
fi

# following should be done just in RPM or Solaris Launcher
# if [ -f /etc/netbeans.conf ] ; then
#     . /etc/netbeans.conf
# fi


# #68373: look for userdir, but do not modify "$@"
userdir="${netbeans_default_userdir}"
founduserdir=""
for opt in "$@"; do
    if [ "${founduserdir}" = "yes" ]; then
        userdir="$opt"
        break
    elif [ "$opt" = "--userdir" ]; then
        founduserdir="yes"
    fi
done

if [ -f "${userdir}"/etc/netbeans.conf ] ; then
    . "${userdir}"/etc/netbeans.conf
fi

if [ ! -f "$progdir"/../etc/netbeans.clusters ]; then
    echo Cannot read cluster file: "$progdir"/../etc/netbeans.clusters 1>&2
    exit 1
fi

readClusters() {
    grep -v "^#" "$progdir"/../etc/netbeans.clusters | grep -v "^$" | grep -v platform | while read X; do
        if [ -d "$progdir"/../$X ]; then
            echo $progdir/../$X
        elif [ -d "$X" ]; then
            echo $X
        fi
    done
}


netbeans_clusters=`readClusters | tr '\012' ':'`

if [ ! -z "$netbeans_extraclusters" ] ; then
    netbeans_clusters="$netbeans_clusters:$netbeans_extraclusters"
fi

launchNbexec() {
    nbexec=`grep -v "^#" "$progdir"/../etc/netbeans.clusters | grep -v "^$" | grep platform | while read X; do
        if [ -f "$progdir"/../$X/lib/nbexec ]; then
            echo "$progdir"/../$X/lib/nbexec
        fi
    done | head -n 1`
    if [ "${founduserdir}" = "yes" ]; then
        sh "$nbexec" "$@"
    else
        sh "$nbexec" --userdir "${userdir}" "$@"
    fi
}

# in case of macosx, the apple.laf.useScreenMenuBar property should be ideally in the Info.plist file
# but it doesn't get propagated into the executed java VM. 
case "`uname`" in
    Darwin*)
        launchNbexec \
            --jdkhome "$netbeans_jdkhome" \
            -J-Dcom.apple.mrj.application.apple.menu.about.name=NetBeans \
            -J-Xdock:name=NetBeans \
            "-J-Xdock:icon=$progdir/../nb5.5/netbeans.icns" \
            --branding nb \
            --clusters "$netbeans_clusters" \
            -J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade \
            -J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense \
            ${netbeans_default_options} \
            "$@"
        ;;
    *)
        launchNbexec \
            --jdkhome "$netbeans_jdkhome" \
            --branding nb \
            --clusters "$netbeans_clusters" \
            -J-Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade \
            -J-Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense \
            ${netbeans_default_options} \
            "$@"
        ;;
esac
