diff --git a/src/lint/engine/ArcanistLintEngine.php b/src/lint/engine/ArcanistLintEngine.php --- a/src/lint/engine/ArcanistLintEngine.php +++ b/src/lint/engine/ArcanistLintEngine.php @@ -471,19 +471,33 @@ } private function executeLinters(array $runnable) { + assert_instances_of($runnable, 'ArcanistLinter'); + $all_paths = $this->getPaths(); $path_chunks = array_chunk($all_paths, 32, $preserve_keys = true); + $progress = id(new PhutilConsoleProgressBar()) + ->setTotal(count($all_paths) * count($runnable)); + $exception_lists = array(); foreach ($path_chunks as $chunk) { - $exception_lists[] = $this->executeLintersOnChunk($runnable, $chunk); + $exception_lists[] = $this->executeLintersOnChunk( + $progress, + $runnable, + $chunk); } + $progress->done(false); + return array_mergev($exception_lists); } - private function executeLintersOnChunk(array $runnable, array $path_list) { + private function executeLintersOnChunk( + PhutilConsoleProgressBar $progress, + array $runnable, + array $path_list) { + assert_instances_of($runnable, 'ArcanistLinter'); $path_map = array_fuse($path_list); @@ -540,6 +554,8 @@ try { $this->executeLinterOnPaths($linter, $paths); $did_lint[] = array($linter, $paths); + + $progress->update(count($paths)); } catch (Exception $ex) { $exceptions[] = $ex; }