OLD | NEW |
1 @echo off | 1 @echo off |
2 rem Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 2 REM Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
3 rem for details. All rights reserved. Use of this source code is governed by a | 3 REM for details. All rights reserved. Use of this source code is governed by a |
4 rem BSD-style license that can be found in the LICENSE file. | 4 REM BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 set SCRIPT_DIR=%~dp0 | 6 setlocal |
7 if %SCRIPT_DIR:~-1%==\ set SCRIPT_DIR=%SCRIPT_DIR:~0,-1% | 7 rem Handle the case where dart-sdk/bin has been symlinked to. |
| 8 set DIR_NAME_WITH_SLASH=%~dp0 |
| 9 set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% |
| 10 call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR |
| 11 rem Get rid of surrounding quotes. |
| 12 for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi |
8 | 13 |
9 for %%I in ("%SCRIPT_DIR%\..") do set "DART_ANALYZER_HOME=%%~fI" | 14 set DART=%BIN_DIR%\dart |
10 if %DART_ANALYZER_HOME:~-1%==\ set DART_ANALYZER_HOME=%DART_ANALYZER_HOME:~0,-1% | 15 set SNAPSHOT=%BIN_DIR%\snapshots\dartanalyzer.dart.snapshot |
11 | 16 |
12 set FOUND_BATCH=0 | 17 "%DART%" "%SNAPSHOT%" %* |
13 set FOUND_SDK=0 | 18 |
14 for %%a in (%*) do ( | 19 endlocal |
15 if [%%a] == [--batch] set FOUND_BATCH=1 | 20 |
16 if [%%a] == [-b] set FOUND_BATCH=1 | 21 exit /b %errorlevel% |
17 if [%%a] == [--dart-sdk] set FOUND_SDK=1 | 22 |
| 23 rem Follow the symbolic links (junctions points) using `dir to determine the |
| 24 rem canonical path. Output with a link looks something like this |
| 25 rem |
| 26 rem 01/03/2013 10:11 PM <JUNCTION> abc def |
| 27 rem [c:\dart_bleeding\dart-repo.9\dart\build\ReleaseIA32\dart-sdk] |
| 28 rem |
| 29 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename |
| 30 rem surrounded by right angle bracket and left square bracket. Once we get |
| 31 rem the filename, which is name of the link, we recursively follow that. |
| 32 :follow_links |
| 33 setlocal |
| 34 for %%i in (%1) do set result=%%~fi |
| 35 set current= |
| 36 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ |
| 37 ^| find "> %~n1 ["`) do ( |
| 38 set current=%%i |
18 ) | 39 ) |
| 40 if not "%current%"=="" call :follow_links "%current%", result |
| 41 endlocal & set %~2=%result% |
| 42 goto :eof |
19 | 43 |
20 setlocal EnableDelayedExpansion | 44 :end |
21 set DART_SDK="" | |
22 if [%FOUND_SDK%] == [0] ( | |
23 if exist "%DART_ANALYZER_HOME%\lib\core\core.dart" ( | |
24 set DART_SDK=--dart-sdk "%DART_ANALYZER_HOME%" | |
25 ) else ( | |
26 for /f %%i in ('echo %DART_ANALYZER_HOME%') do set DART_SDK_HOME=%%~dpi\dart
-sdk | |
27 if exist "!DART_SDK_HOME!" ( | |
28 set DART_SDK=--dart-sdk !DART_SDK_HOME! | |
29 ) else ( | |
30 for /f %%j in ('call echo !DART_SDK_HOME!') do set DART_SDK_HOME=%%~dpj\da
rt-sdk | |
31 if exist "!DART_SDK_HOME!" ( | |
32 set DART_SDK=--dart-sdk !DART_SDK_HOME! | |
33 ) else ( | |
34 echo Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument | |
35 ) | |
36 ) | |
37 ) | |
38 ) | |
39 endlocal & set DART_SDK=%DART_SDK% & set DART_SDK_HOME=%DART_SDK_HOME% | |
40 | |
41 if exist "%DART_SDK_HOME%\util\dartanalyzer\dartanalyzer.jar" ( | |
42 set DART_ANALYZER_LIBS=%DART_SDK_HOME%\util\dartanalyzer | |
43 ) else if exist "%DART_ANALYZER_HOME%\util\dartanalyzer\dartanalyzer.jar" ( | |
44 set DART_ANALYZER_LIBS=%DART_ANALYZER_HOME%\util\dartanalyzer | |
45 ) else ( | |
46 echo Configuration problem. Couldn't find dartanalyzer.jar. | |
47 exit /b 1 | |
48 ) | |
49 | |
50 setlocal EnableDelayedExpansion | |
51 set EXTRA_JVMARGS=-Xss2M | |
52 if [%FOUND_BATCH%] == [1] ( | |
53 set EXTRA_JVMARGS=!EXTRA_JVMARGS! -client | |
54 ) | |
55 endlocal & set "EXTRA_JVMARGS=%EXTRA_JVMARGS%" | |
56 | |
57 java %EXTRA_JVMARGS% %DART_JVMARGS% -ea -jar "%DART_ANALYZER_LIBS%\dartanalyzer.
jar" %DART_SDK% %* | |
OLD | NEW |