| @ echo off |
| :: ======================================================================== |
| :: 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 |
| |
| setlocal enabledelayedexpansion |
| |
| :: Locate the folder of the bat file. |
| :: Use the short path so we don't have issues with spaces. |
| set ECLIPSEHOME=%~sdp0 |
| |
| :: find the eclipse.ini file: |
| for /F "tokens=* delims=" %%A in ('dir /b %ECLIPSEHOME%\*.ini') do set ECLIPSE_INI=%ECLIPSEHOME%\%%A |
| |
| :: the bat does not assume that we are in the installation folder |
| :: but the jetty code does because jetty.home=. in the config.ini |
| cd %ECLIPSEHOME% |
| |
| goto :assemble |
| |
| :findargvalue |
| set argname=-%1 |
| set argfound=false |
| set "argvalue=" |
| ::echo arg: %argname% |
| for /f "eol= tokens=* delims= usebackq" %%i in (%ECLIPSE_INI%) do ( |
| if "!argfound!" == "true" ( |
| set argvalue=%%i |
| goto :findargvalue_checkNotFlag |
| ) else ( |
| if %argname%==%%i set argfound=true |
| ) |
| ) |
| goto :eof |
| |
| :findargvalue_checkNotFlag |
| ::some arguments are either flags or parameters( -console). |
| ::if the next line starts with a '-' then consider that a flag |
| set first=%argvalue:~0,1% |
| if %first%==- set "argvalue=" |
| goto :eof |
| |
| :findjavaopts |
| set argname=-vmargs |
| set argfound=false |
| set "argvalue=" |
| for /f "eol= tokens=* delims= usebackq" %%i in (%ECLIPSE_INI%) do ( |
| if "!argfound!" == "true" ( |
| set "argvalue=!argvalue! %%i" |
| ) else ( |
| if %argname%==%%i set argfound=true |
| ) |
| ) |
| goto :eof |
| |
| |
| :assemble |
| :: console |
| call :findargvalue console |
| set "console=" |
| if not "%argvalue%"=="" ( |
| set "console= -console %argvalue%" |
| ) else ( |
| if %argfound%==true set "console= -console" |
| ) |
| echo the console arG %console% |
| |
| :: startup: |
| call :findargvalue startup |
| set argvalue=%argValue:/=\% |
| set startup=%ECLIPSEHOME%%argvalue% |
| set install=%ECLIPSEHOME% |
| |
| :: application |
| call :findargvalue application |
| set "application=" |
| if not "%argvalue%"=="" ( |
| set "application= -application %argvalue%" |
| ) |
| |
| :: logback config: |
| set "logback=-Dlogback.configurationFile^=%ECLIPSEHOME%etc\logback.xml" |
| |
| ::-launcher.XXMaxPermSize |
| call :findargvalue -launcher.XXMaxPermSize |
| set "XXMaxPermSize=" |
| if not "%argvalue%"=="" ( |
| set XXMaxPermSize=" -XX:MaxPermSize^=%argvalue%" |
| ) |
| |
| ::vmargs |
| call :findjavaopts |
| set "vmargs=%argvalue% " |
| |
| ::JAVA_HOME if defined: |
| set java=java |
| if not "%JAVA_HOME%"=="" set java="%JAVA_HOME%\bin\java" |
| |
| :: print the cmd: |
| REM Creating a Newline variable (the two blank lines are required!) |
| set NLM=^ |
| |
| |
| set NL=^^^%NLM%%NLM%^%NLM%%NLM% |
| |
| :: start Eclipse w/ java |
| set command=%java% -jar %startup% %vmargs% %logback% -install %install%%application%%console%%XXMaxPermSize% %* |
| echo %NL%Launching Equinox with: %command%%NL% |
| %command% |