Index: sdk/bin/dartanalyzer.bat |
diff --git a/sdk/bin/dartanalyzer.bat b/sdk/bin/dartanalyzer.bat |
index 490512446376baf4782c3a1b40c4cbb8fee2095b..c7cc4d9fb42f335c559fc9ae172ecae8d5402616 100644 |
--- a/sdk/bin/dartanalyzer.bat |
+++ b/sdk/bin/dartanalyzer.bat |
@@ -1,57 +1,47 @@ |
-@echo off |
-rem Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
-rem for details. All rights reserved. Use of this source code is governed by a |
-rem BSD-style license that can be found in the LICENSE file. |
- |
-set SCRIPT_DIR=%~dp0 |
-if %SCRIPT_DIR:~-1%==\ set SCRIPT_DIR=%SCRIPT_DIR:~0,-1% |
- |
-for %%I in ("%SCRIPT_DIR%\..") do set "DART_ANALYZER_HOME=%%~fI" |
-if %DART_ANALYZER_HOME:~-1%==\ set DART_ANALYZER_HOME=%DART_ANALYZER_HOME:~0,-1% |
- |
-set FOUND_BATCH=0 |
-set FOUND_SDK=0 |
-for %%a in (%*) do ( |
- if [%%a] == [--batch] set FOUND_BATCH=1 |
- if [%%a] == [-b] set FOUND_BATCH=1 |
- if [%%a] == [--dart-sdk] set FOUND_SDK=1 |
-) |
- |
-setlocal EnableDelayedExpansion |
-set DART_SDK="" |
-if [%FOUND_SDK%] == [0] ( |
- if exist "%DART_ANALYZER_HOME%\lib\core\core.dart" ( |
- set DART_SDK=--dart-sdk "%DART_ANALYZER_HOME%" |
- ) else ( |
- for /f %%i in ('echo %DART_ANALYZER_HOME%') do set DART_SDK_HOME=%%~dpi\dart-sdk |
- if exist "!DART_SDK_HOME!" ( |
- set DART_SDK=--dart-sdk !DART_SDK_HOME! |
- ) else ( |
- for /f %%j in ('call echo !DART_SDK_HOME!') do set DART_SDK_HOME=%%~dpj\dart-sdk |
- if exist "!DART_SDK_HOME!" ( |
- set DART_SDK=--dart-sdk !DART_SDK_HOME! |
- ) else ( |
- echo Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument |
- ) |
- ) |
- ) |
-) |
-endlocal & set DART_SDK=%DART_SDK% & set DART_SDK_HOME=%DART_SDK_HOME% |
- |
-if exist "%DART_SDK_HOME%\util\dartanalyzer\dartanalyzer.jar" ( |
- set DART_ANALYZER_LIBS=%DART_SDK_HOME%\util\dartanalyzer |
-) else if exist "%DART_ANALYZER_HOME%\util\dartanalyzer\dartanalyzer.jar" ( |
- set DART_ANALYZER_LIBS=%DART_ANALYZER_HOME%\util\dartanalyzer |
-) else ( |
- echo Configuration problem. Couldn't find dartanalyzer.jar. |
- exit /b 1 |
-) |
- |
-setlocal EnableDelayedExpansion |
-set EXTRA_JVMARGS=-Xss2M |
-if [%FOUND_BATCH%] == [1] ( |
- set EXTRA_JVMARGS=!EXTRA_JVMARGS! -client |
-) |
-endlocal & set "EXTRA_JVMARGS=%EXTRA_JVMARGS%" |
- |
-java %EXTRA_JVMARGS% %DART_JVMARGS% -ea -jar "%DART_ANALYZER_LIBS%\dartanalyzer.jar" %DART_SDK% %* |
+@echo off |
+REM Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+REM for details. All rights reserved. Use of this source code is governed by a |
+REM BSD-style license that can be found in the LICENSE file. |
+ |
+setlocal |
+rem Handle the case where dart-sdk/bin has been symlinked to. |
+set DIR_NAME_WITH_SLASH=%~dp0 |
+set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% |
+call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR |
+rem Get rid of surrounding quotes. |
+for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi |
+ |
+rem Get absolute full name for SDK_DIR. |
+for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi |
+ |
+rem Remove trailing backslash if there is one |
+IF %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% |
+ |
+set DARTANALYZER=%SDK_DIR%\..\packages\analyzer\bin\analyzer.dart |
ahe
2014/04/22 09:38:13
I don't think this works.
danrubel
2014/04/22 18:37:54
Good point. I copied this from dartfmt.bat so it p
|
+set DART=%BIN_DIR%\dart |
+set SNAPSHOT=%BIN_DIR%\snapshots\dartanalyzer.dart.snapshot |
+ |
+ |
+if exist "%SNAPSHOT%" ( |
+ "%DART%" "%SNAPSHOT%" %* |
+) else ( |
+ "%DART%" "%DARTANALYZER%" %* |
+) |
+ |
+endlocal |
+ |
+exit /b %errorlevel% |
+ |
+:follow_links |
+setlocal |
+for %%i in (%1) do set result=%%~fi |
+set current= |
+for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ |
+ ^| find "> %~n1 ["`) do ( |
+ set current=%%i |
+) |
+if not "%current%"=="" call :follow_links "%current%", result |
+endlocal & set %~2=%result% |
+goto :eof |
+ |
+:end |