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 | 15 |
16 rem Get absolute full name for SDK_DIR. | 16 rem Get absolute full name for SDK_DIR. |
17 for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi | 17 for %%i in ("%BIN_DIR%\..\") do set SDK_DIR=%%~fi |
18 | 18 |
19 rem Remove trailing backslash if there is one | 19 rem Remove trailing backslash if there is one |
20 if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% | 20 if %SDK_DIR:~-1%==\ set SDK_DIR=%SDK_DIR:~0,-1% |
21 | 21 |
22 rem Get absolute full name for DART_ROOT. | 22 rem Get absolute full name for DART_ROOT. |
23 for %%i in ("%SDK_DIR%\..\") do set DART_ROOT=%%~fi | 23 for %%i in ("%SDK_DIR%\..\") do set DART_ROOT=%%~fi |
24 | 24 |
25 rem Remove trailing backslash if there is one | 25 rem Remove trailing backslash if there is one |
26 if %DART_ROOT:~-1%==\ set DART_ROOT=%DART_ROOT:~0,-1% | 26 if %DART_ROOT:~-1%==\ set DART_ROOT=%DART_ROOT:~0,-1% |
27 | 27 |
28 set DARTFMT=%DART_ROOT%\third_party\pkg_tested\dart_style\bin\format.dart | 28 set DARTFMT=%DART_ROOT%\third_party\pkg_tested\dart_style\bin\format.dart |
29 | 29 |
30 rem DART_CONFIGURATION defaults to ReleaseX64 | 30 "%DART%" "%DARTFMT%" %* |
31 if "%DART_CONFIGURATION%"=="" set DART_CONFIGURATION=ReleaseX64 | |
32 | |
33 set BUILD_DIR=%DART_ROOT%\out\%DART_CONFIGURATION% | |
34 | |
35 set PACKAGE_ROOT=%BUILD_DIR%\packages | |
36 | |
37 "%DART%" "--package-root=%PACKAGE_ROOT%" "%DARTFMT%" %* | |
38 | 31 |
39 endlocal | 32 endlocal |
40 | 33 |
41 exit /b %errorlevel% | 34 exit /b %errorlevel% |
42 | 35 |
43 rem Follow the symbolic links (junctions points) using `dir to determine the | 36 rem Follow the symbolic links (junctions points) using `dir to determine the |
44 rem canonical path. Output with a link looks something like this | 37 rem canonical path. Output with a link looks something like this |
45 rem | 38 rem |
46 rem 01/03/2013 10:11 PM <JUNCTION> abc def | 39 rem 01/03/2013 10:11 PM <JUNCTION> abc def |
47 rem [c:\dart_bleeding\dart-repo.9\dart\out\ReleaseIA32\dart-sdk] | 40 rem [c:\dart_bleeding\dart-repo.9\dart\out\ReleaseIA32\dart-sdk] |
48 rem | 41 rem |
49 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename | 42 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename |
50 rem surrounded by right angle bracket and left square bracket. Once we get | 43 rem surrounded by right angle bracket and left square bracket. Once we get |
51 rem the filename, which is name of the link, we recursively follow that. | 44 rem the filename, which is name of the link, we recursively follow that. |
52 :follow_links | 45 :follow_links |
53 setlocal | 46 setlocal |
54 for %%i in (%1) do set result=%%~fi | 47 for %%i in (%1) do set result=%%~fi |
55 set current= | 48 set current= |
56 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ | 49 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ |
57 ^| %SystemRoot%\System32\find.exe "
> %~n1 ["`) do ( | 50 ^| %SystemRoot%\System32\find.exe "
> %~n1 ["`) do ( |
58 set current=%%i | 51 set current=%%i |
59 ) | 52 ) |
60 if not "%current%"=="" call :follow_links "%current%", result | 53 if not "%current%"=="" call :follow_links "%current%", result |
61 endlocal & set %~2=%result% | 54 endlocal & set %~2=%result% |
62 goto :eof | 55 goto :eof |
63 | 56 |
64 :end | 57 :end |
OLD | NEW |