| #!/bin/bash |
| # ======================================================================== |
| # Copyright (c) 2006-2010 Intalio Inc |
| # ------------------------------------------------------------------------ |
| # All rights reserved. This program and the accompanying materials |
| # are made available under the terms of the Eclipse Public License v1.0 |
| # and Apache License v2.0 which accompanies this distribution. |
| # The Eclipse Public License is available at |
| # http://www.eclipse.org/legal/epl-v10.html |
| # The Apache License v2.0 is available at |
| # http://www.opensource.org/licenses/apache2.0.php |
| # You may elect to redistribute this code under either of these licenses. |
| # ======================================================================== |
| # Author hmalphettes |
| # This scripts generates a command-line to launch equinox. |
| # It uses the arguments defined in the *.ini file |
| |
| # set path to eclipse folder. If local folder, use '.'; otherwise, use /path/to/eclipse/ |
| eclipsehome=`dirname $0`; |
| cd $eclipsehome |
| eclipsehome=`pwd` |
| |
| iniLookupFolder=$eclipsehome |
| # get path to equinox jar inside $eclipsehome folder |
| ini=$(find $eclipsehome -mindepth 1 -maxdepth 1 -name "*.ini" | sort | tail -1); |
| if [ ! -f "$ini" ]; then |
| #maybe a mac |
| appFolder=$(find $eclipsehome -mindepth 1 -maxdepth 1 -type d -name "*.app" | sort | tail -1); |
| iniLookupFolder="$appFolder/Contents/MacOS" |
| if [ -d "$iniLookupFolder" ]; then |
| ini=$(find $iniLookupFolder -mindepth 1 -maxdepth 1 -type f -name "*.ini" | sort | tail -1); |
| fi |
| fi |
| if [ -f "$ini" ]; then |
| args=`cat $ini | tr '\n' ' ' | awk -F'-startup ' '{print $2}'` |
| ini_str=`cat $ini | tr '\n' ' '` |
| else |
| #this only works for a standalone (aka "roaming") install |
| args=$(find $eclipsehome -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1); |
| fi |
| if [ ! -f "$args" ]; then |
| #was returned as path relative to iniLookupFolder |
| args="$iniLookupFolder/$args" |
| fi |
| |
| if [ -z "$JAVA_OPTS" ]; then |
| # JAVA_OPTS="-XX:MaxPermSize=384m -Xms96m -Xmx784m" |
| #PermGen |
| XXMaxPermSize=`sed -n '/--launcher\.XXMaxPermSize/{n;p;}' cloud.ini` |
| if [ -n "$XXMaxPermSize" ]; then |
| XXMaxPermSize=" $XXMaxPermSize" |
| fi |
| #vmargs |
| JAVA_OPTS=`sed '1,/-vmargs/d' cloud.ini | tr '\n' ' '`$XXMaxPermSize |
| if [ -z "$JAVA_OPTS" ]; then |
| JAVA_OPTS="-XX:MaxPermSize=384m -Xms96m -Xmx784m" |
| fi |
| fi |
| #use -install unless it was already specified in the ini file: |
| installArg= |
| if echo $* | grep -Eq ' -install' |
| then |
| #echo "-install already defined in the ini file" |
| installArg="" |
| else |
| installArg=" -install $eclipsehome" |
| fi |
| |
| #use -configuration unless it was already specified in the ini file: |
| configurationArg= |
| if echo $* | grep -Eq ' -configuration' |
| then |
| #echo "-install already defined in the ini file" |
| configurationArg="" |
| else |
| tmp_config_area=`mktemp -d /tmp/cloudConfigArea.XXXXXX` |
| configurationArg=" -configuration $tmp_config_area" |
| fi |
| |
| logback= |
| if echo $* | grep -Eq ' -Dlogback.configurationFile=' |
| then |
| #logback conf specified on cmd line. |
| logback="" |
| else |
| logback=" -Dlogback.configurationFile=$eclipsehome/etc/logback.xml " |
| fi |
| |
| #Read the console argument. It could be a flag. |
| console=`awk '{if ($1 ~ /-console/){print $1}}' < $ini | head -1` |
| if [ ! -z "$console" ]; then |
| consoleArg=`sed -n '/-console/{n;p;}' $ini` |
| first=`echo $consoleArg | cut -c1-1` |
| echo "$consoleArg -> $first" |
| if [ "$first" = "-" ]; then |
| console=" -console $consoleArg" |
| else |
| console=" -console" |
| fi |
| fi |
| |
| cmd="java $JAVA_OPTS -jar $args$installArg$configurationArg$logback$console $*" |
| echo "Staring Equinox with $cmd" |
| $cmd |