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 setlocal | 6 setlocal |
7 rem Handle the case where dart-sdk/bin has been symlinked to. | 7 rem Handle the case where dart-sdk/bin has been symlinked to. |
8 set DIR_NAME_WITH_SLASH=%~dp0 | 8 set DIR_NAME_WITH_SLASH=%~dp0 |
9 set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% | 9 set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% |
10 call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR | 10 call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR |
11 rem Get rid of surrounding quotes. | 11 rem Get rid of surrounding quotes. |
12 for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi | 12 for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi |
13 | 13 |
14 set DART=%BIN_DIR%\dart | 14 set DART=%BIN_DIR%\dart |
15 set SNAPSHOT=%BIN_DIR%\snapshots\dartanalyzer.dart.snapshot | |
16 | 15 |
17 rem Get absolute full name for SDK_DIR. | 16 rem Get absolute full name for SDK_DIR. |
18 for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi | 17 for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi |
19 | 18 |
20 rem Remove trailing backslash if there is one | 19 rem Remove trailing backslash if there is one |
21 if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% | 20 if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% |
22 | 21 |
23 set SDK_ARG=--dart-sdk=%SDK_DIR% | 22 set SDK_ARG=--dart-sdk=%SDK_DIR% |
24 | 23 |
25 "%DART%" "%SNAPSHOT%" "%SDK_ARG%" %* | 24 set EXTRA_VM_OPTIONS= |
25 | |
26 if _%DARTANALYZER_DEVELOPER_MODE%_ == _1_ ( | |
27 set EXTRA_VM_OPTIONS=%EXTRA_VM_OPTIONS% --checked | |
28 ) | |
29 | |
30 rem We allow extra vm options to be passed in through an environment variable. | |
31 if not "_%DART_VM_OPTIONS%_" == "__" ( | |
32 set EXTRA_VM_OPTIONS=%EXTRA_VM_OPTIONS% %DART_VM_OPTIONS% | |
33 ) | |
34 | |
35 rem Get absolute full name for DART_ROOT. | |
36 for %%i in ("%SDK_DIR%\..\") do set DART_ROOT=%%~fi | |
37 | |
38 rem Remove trailing backslash if there is one | |
39 if %DART_ROOT:~-1%==\ set DART_ROOT=%DART_ROOT:~0,-1% | |
40 | |
41 set ANALYZER=%DART_ROOT%\pkg\analyzer\bin\analyzer.dart | |
42 | |
43 rem DART_CONFIGURATION defaults to ReleaseIA32 | |
44 if "%DART_CONFIGURATION%"=="" set DART_CONFIGURATION=ReleaseIA32 | |
45 | |
46 set BUILD_DIR=%DART_ROOT%\build\%DART_CONFIGURATION% | |
47 | |
48 set PACKAGE_ROOT=%BUILD_DIR%\packages\ | |
Johnni Winther
2014/10/16 11:42:36
Remove the trailing slash since in creates an esca
Paul Berry
2014/10/16 14:16:30
Done.
| |
49 | |
50 "%DART%" %EXTRA_VM_OPTIONS% "--package-root=%PACKAGE_ROOT%" "%ANALYZER%" "%SDK_A RG%" %* | |
26 | 51 |
27 endlocal | 52 endlocal |
28 | 53 |
29 exit /b %errorlevel% | 54 exit /b %errorlevel% |
30 | 55 |
31 rem Follow the symbolic links (junctions points) using `dir to determine the | 56 rem Follow the symbolic links (junctions points) using `dir to determine the |
32 rem canonical path. Output with a link looks something like this | 57 rem canonical path. Output with a link looks something like this |
33 rem | 58 rem |
34 rem 01/03/2013 10:11 PM <JUNCTION> abc def | 59 rem 01/03/2013 10:11 PM <JUNCTION> abc def |
35 rem [c:\dart_bleeding\dart-repo.9\dart\build\ReleaseIA32\dart-sdk] | 60 rem [c:\dart_bleeding\dart-repo.9\dart\build\ReleaseIA32\dart-sdk] |
36 rem | 61 rem |
37 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename | 62 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename |
38 rem surrounded by right angle bracket and left square bracket. Once we get | 63 rem surrounded by right angle bracket and left square bracket. Once we get |
39 rem the filename, which is name of the link, we recursively follow that. | 64 rem the filename, which is name of the link, we recursively follow that. |
40 :follow_links | 65 :follow_links |
41 setlocal | 66 setlocal |
42 for %%i in (%1) do set result=%%~fi | 67 for %%i in (%1) do set result=%%~fi |
43 set current= | 68 set current= |
44 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ | 69 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ |
45 ^| find "> %~n1 ["`) do ( | 70 ^| find "> %~n1 ["`) do ( |
46 set current=%%i | 71 set current=%%i |
47 ) | 72 ) |
48 if not "%current%"=="" call :follow_links "%current%", result | 73 if not "%current%"=="" call :follow_links "%current%", result |
49 endlocal & set %~2=%result% | 74 endlocal & set %~2=%result% |
50 goto :eof | 75 goto :eof |
51 | 76 |
52 :end | 77 :end |
OLD | NEW |