mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
290 lines
7.3 KiB
Batchfile
290 lines
7.3 KiB
Batchfile
@echo off
|
|
rem This file was generated by the Jython installer
|
|
rem Created on Sat Apr 02 17:40:41 CEST 2011 by yole
|
|
|
|
set JAVA_HOME="C:\Program Files (x86)\Java\jre6"
|
|
set JYTHON_HOME_FALLBACK="C:\jython2.5.2"
|
|
|
|
@echo off
|
|
rem ---------------------------------------------------------------------------
|
|
rem jython.bat - start script for Jython (adapted from jruby.bat)
|
|
rem
|
|
rem Environment variables (optional)
|
|
rem
|
|
rem JAVA_HOME Java installation directory
|
|
rem
|
|
rem JYTHON_HOME Jython installation directory
|
|
rem
|
|
rem JYTHON_OPTS Default Jython command line arguments
|
|
rem
|
|
rem ---------------------------------------------------------------------------
|
|
|
|
rem If running in Take Command (4NT), force to run in cmd.exe
|
|
if not "%@eval[2+2]" == "4" goto normalstart
|
|
cmd /C %0 %*
|
|
goto finish
|
|
|
|
:normalstart
|
|
set _PERCENT=%%
|
|
set _EXCLAMATION=!
|
|
setlocal enabledelayedexpansion
|
|
|
|
rem ----- Verify and set required environment variables -----------------------
|
|
|
|
rem make sure to clear the internal variables, to prevent leaking into subprocess calls
|
|
set _JAVA_CMD=java
|
|
if defined JAVA_HOME set _JAVA_CMD="%JAVA_HOME:"=%\bin\java"
|
|
set _JYTHON_OPTS=
|
|
if defined JYTHON_OPTS set _JYTHON_OPTS="%JYTHON_OPTS:"=%"
|
|
set _JYTHON_HOME=
|
|
if defined JYTHON_HOME set _JYTHON_HOME="%JYTHON_HOME:"=%"
|
|
if defined _JYTHON_HOME goto gotHome
|
|
|
|
rem try to dynamically determine jython home
|
|
rem (this script typically resides in jython home, or in the /bin subdirectory)
|
|
pushd "%~dp0%"
|
|
set _JYTHON_HOME="%CD%"
|
|
popd
|
|
if exist %_JYTHON_HOME%\jython-dev.jar goto gotHome
|
|
if exist %_JYTHON_HOME%\jython.jar goto gotHome
|
|
pushd "%~dp0%\.."
|
|
set _JYTHON_HOME="%CD%"
|
|
popd
|
|
if exist %_JYTHON_HOME%\jython-dev.jar goto gotHome
|
|
if exist %_JYTHON_HOME%\jython.jar goto gotHome
|
|
rem jython home fallback (if all else fails)
|
|
rem if present, %JYTHON_HOME_FALLBACK% is already quoted
|
|
set _JYTHON_HOME=%JYTHON_HOME_FALLBACK%
|
|
|
|
:gotHome
|
|
if not exist %_JYTHON_HOME%\jython-dev.jar goto tryComplete
|
|
rem prefer built version
|
|
set _CP=%_JYTHON_HOME%\jython-dev.jar
|
|
for %%j in (%_JYTHON_HOME%\javalib\*.jar) do (
|
|
set _CP=!_CP!;"%%j"
|
|
)
|
|
goto run
|
|
|
|
:tryComplete
|
|
set _CP=%_JYTHON_HOME%\jython.jar
|
|
if exist %_JYTHON_HOME%/jython.jar goto run
|
|
|
|
echo Cannot find jython-dev.jar or jython.jar in %_JYTHON_HOME%
|
|
echo Try running this batch file from the 'bin' directory of an installed Jython,
|
|
echo or setting JYTHON_HOME.
|
|
goto cleanup
|
|
|
|
rem ----- Execute the requested command ----------------------------------------
|
|
|
|
:run
|
|
set _JAVA_MEM=-Xmx512m
|
|
rem 1152k is the minimum for test_marshal to pass. Windows' default is
|
|
rem apparently 1M, anyway
|
|
set _JAVA_STACK=-Xss1152k
|
|
|
|
rem Escape any quotes. Use _S for ', _D for ", and _U to escape _ itself.
|
|
rem We have to escape _ itself, otherwise file names with _S and _D
|
|
rem will be converted to to wrong ones, when we un-escape. See JRUBY-2821.
|
|
set _ARGS=%*
|
|
if not defined _ARGS goto argsDone
|
|
set _ARGS=%_ARGS:_=_U%
|
|
set _ARGS=%_ARGS:'=_S%
|
|
set _ARGS=%_ARGS:"=_D%
|
|
rem also escape % signs
|
|
set _replaceVal=%_ARGS%
|
|
call :escape
|
|
set _ARGS=%_replaceVal%
|
|
|
|
set _ARGS="%_ARGS%"
|
|
set _JYTHON_ARGS=
|
|
|
|
:scanArgs
|
|
rem split args by spaces into first and rest
|
|
for /f "tokens=1,*" %%i in (%_ARGS%) do call :getArg "%%i" "%%j"
|
|
goto procArg
|
|
|
|
:getArg
|
|
rem remove quotes around first arg
|
|
set _CMP=%~1
|
|
set _ARGS=%2
|
|
goto :EOF
|
|
|
|
:procArg
|
|
if ["%_CMP%"] == [""] (
|
|
set _ARGS=
|
|
goto argsDone
|
|
)
|
|
|
|
REM NOTE: If you'd like to use a parameter with underscore in its name,
|
|
REM NOTE: use the quoted value: --do_stuff -> --do_Ustuff
|
|
|
|
if ["%_CMP%"] == ["--"] goto argsDone
|
|
|
|
if ["%_CMP%"] == ["--jdb"] (
|
|
if defined JAVA_HOME (
|
|
set _JAVA_CMD="%JAVA_HOME:"=%\bin\jdb"
|
|
) else (
|
|
set _JAVA_CMD=jdb
|
|
)
|
|
goto :nextArg
|
|
)
|
|
|
|
if ["%_CMP%"] == ["--boot"] (
|
|
set _BOOT_CP=-Xbootclasspath/a:%_CP%
|
|
goto :nextArg
|
|
)
|
|
|
|
if ["%_CMP%"] == ["--print"] (
|
|
set _PRINT=print
|
|
goto :nextArg
|
|
)
|
|
|
|
rem now unescape everything
|
|
set _replaceVal=%_CMP%
|
|
call :escape
|
|
set _CMP=%_replaceVal%
|
|
set _CMP=%_CMP:_D="%
|
|
set _CMP=%_CMP:_S='%
|
|
set _CMP=%_CMP:_U=_%
|
|
set _CMP1=%_CMP:~0,1%
|
|
set _CMP2=%_CMP:~0,2%
|
|
|
|
rem detect first character is a quote; skip directly to jythonArg
|
|
rem this avoids a batch syntax error
|
|
if "%_CMP1:"=\\%" == "\\" goto jythonArg
|
|
|
|
rem removing quote avoids a batch syntax error
|
|
if "%_CMP2:"=\\%" == "-J" goto jvmArg
|
|
|
|
:jythonArg
|
|
set _JYTHON_ARGS=%_JYTHON_ARGS% %_CMP%
|
|
goto nextArg
|
|
|
|
:jvmArg
|
|
set _VAL=%_CMP:~2%
|
|
|
|
if "%_VAL:~0,4%" == "-Xmx" (
|
|
set _JAVA_MEM=%_VAL%
|
|
) else if "%_VAL:~0,4%" == "-Xss" (
|
|
set _JAVA_STACK=%_VAL%
|
|
) else (
|
|
set _JAVA_OPTS=%_JAVA_OPTS% %_VAL%
|
|
)
|
|
|
|
:nextArg
|
|
set _CMP=
|
|
goto scanArgs
|
|
|
|
:argsDone
|
|
rem do not use 'if () else ()': this does not work with CLASSPATH containing '(x86)'
|
|
if defined _BOOT_CP goto fullCmd
|
|
if defined CLASSPATH goto classpathDefined
|
|
set CLASSPATH=%_CP:"=%
|
|
goto fullCmd
|
|
:classpathDefined
|
|
set CLASSPATH=%_CP:"=%;%CLASSPATH:"=%
|
|
|
|
:fullCmd
|
|
set _FULL_CMD=%_JAVA_CMD% %_JAVA_OPTS% %_JAVA_MEM% %_JAVA_STACK% -Dpython.home=%_JYTHON_HOME% -Dpython.executable="%~f0" %_BOOT_CP% -classpath "%CLASSPATH%" org.python.util.jython %_JYTHON_OPTS% %_JYTHON_ARGS% %_ARGS%
|
|
if defined _PRINT (
|
|
echo %_FULL_CMD%
|
|
) else (
|
|
%_FULL_CMD%
|
|
)
|
|
set E=%ERRORLEVEL%
|
|
|
|
:cleanup
|
|
set _ARGS=
|
|
set _CMP=
|
|
set _CMP1=
|
|
set _CMP2=
|
|
set _CP=
|
|
set _BOOT_CP=
|
|
set _FULL_CMD=
|
|
set _JAVA_CMD=
|
|
set _JAVA_OPTS=
|
|
set _JAVA_MEM=
|
|
set _JAVA_STACK=
|
|
set _JYTHON_HOME=
|
|
set _JYTHON_OPTS=
|
|
set _JYTHON_ARGS=
|
|
set _PRINT=
|
|
goto finish
|
|
|
|
|
|
|
|
REM escapes or unescapes % with @@P@@, and ! with @@E@@
|
|
REM input: a text variable named _replaceVal
|
|
REM result: _replaceVal has the new value
|
|
:escape
|
|
if not defined _replaceVal goto :EOF
|
|
set /a _index=-1
|
|
set _replaced=
|
|
|
|
:escapeNext
|
|
set /a _index=%_index% + 1
|
|
call set _escapeChar=%%_replaceVal:~%_index%,1%%
|
|
if ^"==^%_escapeChar% goto noEscape
|
|
if ''=='%_escapeChar%' goto escapeEnd
|
|
if "%_escapeChar%"==" " goto noEscape
|
|
if "%_escapeChar%"=="@" goto unescapeCheck
|
|
if "%_escapeChar%"=="%_EXCLAMATION%" goto escapeExclamation
|
|
if "%_escapeChar%"=="%_PERCENT%" goto escapePercent
|
|
:noEscape
|
|
set _replaced=%_replaced%%_escapeChar%
|
|
goto escapeNext
|
|
|
|
:escapeExclamation
|
|
set _replaced=%_replaced%@@E@@
|
|
goto escapeNext
|
|
|
|
:escapePercent
|
|
set _replaced=%_replaced%@@P@@
|
|
goto escapeNext
|
|
|
|
:unescapeCheck
|
|
set _isExclamation=
|
|
set _isPercent=
|
|
set _isUnrecognized=true
|
|
set /a _aheadIndex=%_index% + 1
|
|
call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%%
|
|
if ^"==^%_aheadChar% goto noEscape
|
|
if "%_aheadChar%"=="@" set /a _aheadIndex=%_aheadIndex% + 1
|
|
call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%%
|
|
if ^"==^%_aheadChar% goto noEscape
|
|
if "%_aheadChar%"=="E" set _isExclamation=true & set _isUnrecognized=
|
|
if "%_aheadChar%"=="P" set _isPercent=true & set _isUnrecognized=
|
|
if defined _isUnrecognized goto noEscape
|
|
set _isUnrecognized=true
|
|
set /a _aheadIndex=%_aheadIndex% + 1
|
|
call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%%
|
|
if ^"==^%_aheadChar% goto noEscape
|
|
if "%_aheadChar%"=="@" set /a _aheadIndex=%_aheadIndex% + 1
|
|
call set _aheadChar=%%_replaceVal:~%_aheadIndex%,1%%
|
|
if ^"==^%_aheadChar% goto noEscape
|
|
if "%_aheadChar%"=="@" set _isUnrecognized=
|
|
if defined _isUnrecognized goto noEscape
|
|
if defined _isExclamation goto unescapeExclamation
|
|
if defined _isPercent goto unescapePercent
|
|
goto noEscape
|
|
|
|
:unescapeExclamation
|
|
set _replaced=%_replaced%%_EXCLAMATION%
|
|
set /a _index=%_index% + 4
|
|
goto escapeNext
|
|
|
|
:unescapePercent
|
|
set _replaced=%_replaced%%_PERCENT%
|
|
set /a _index=%_index% + 4
|
|
goto escapeNext
|
|
|
|
:escapeEnd
|
|
set _replaceVal=%_replaced%
|
|
goto :EOF
|
|
|
|
|
|
|
|
:finish
|
|
set _UNQUOTED_COMSPEC=%COMSPEC:"=%
|
|
"%_UNQUOTED_COMSPEC%" /c exit /b %E%
|