| @echo off |
| |
| set ARGS=@@ARGS@@ |
| |
| rem Remove the leading '(' and trailing ')' characters that surround the arguments |
| set stripped_args=%ARGS:~1,-1% |
| |
| rem Unquote the arguments |
| set stripped_args=%stripped_args:'=% |
| |
| rem Get the absolute path to the buildifier executable |
| for /f "tokens=2" %%i in ('findstr /r "\<buildifier\.exe\>" MANIFEST') do (set buildifier_abs_path=%%i) |
| |
| powershell ^ |
| function Buildify($Root)^ |
| {^ |
| $Folder = (New-Object -Com Scripting.FileSystemObject).GetFolder($Root);^ |
| $Files = $Folder.Files ^| Where-Object {^ |
| $_.Name -eq 'BUILD.bazel' `^ |
| -or $_.Name -eq 'BUILD' `^ |
| -or $_.Name -eq 'WORKSPACE' `^ |
| -or $_.Name -eq 'WORKSPACE.bazel' `^ |
| -or $_.Name -eq 'WORKSPACE.oss' `^ |
| -or $_.Name -clike '*.bzl' `^ |
| -or $_.Name -clike '*.sky' `^ |
| -or $_.Name -clike '*.BUILD' `^ |
| -or $_.Name -clike 'BUILD.*.bazel' `^ |
| -or $_.Name -clike 'BUILD.*.oss' `^ |
| -or $_.Name -clike 'WORKSPACE.*.bazel' `^ |
| -or $_.Name -clike 'WORKSPACE.*.oss'^ |
| };^ |
| foreach ($File in $Files)^ |
| {^ |
| ^& '%buildifier_abs_path%' %stripped_args% $File.Path;^ |
| };^ |
| foreach ($SubFolder in $Folder.Subfolders)^ |
| {^ |
| $CurrentItem = Get-Item $SubFolder.Path -ErrorAction SilentlyContinue;^ |
| if ($CurrentItem -and !$CurrentItem.Attributes.ToString().Contains('ReparsePoint'))^ |
| {^ |
| Buildify($SubFolder.Path);^ |
| };^ |
| };^ |
| };^ |
| Buildify('%BUILD_WORKSPACE_DIRECTORY%'); |