1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 06:42:41 +01:00

Allow linters that extend ArcanistExternalLinter to customize the file parameter

Summary: Not all linters run on a `command file` fashion. In particular, the maven checkstyle plugin runs like `command --flag=file`.

Test Plan: Run a linter that extends `ArcanistExternalLinter`.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9026
This commit is contained in:
Juan Pablo Civile 2014-05-11 16:25:38 -07:00 committed by epriestley
parent 5d1f87a8c2
commit 377c585752

View file

@ -381,6 +381,19 @@ abstract class ArcanistExternalLinter extends ArcanistFutureLinter {
}
}
/**
* Prepare the path to be added to the command string.
*
* This method is expected to return an already escaped string.
*
* @param string Path to the file being linted
* @return string The command-ready file argument
*/
protected function getPathArgumentForLinterFuture($path) {
return csprintf('%s', $path);
}
protected function buildFutures(array $paths) {
$executable = $this->getExecutableCommand();
@ -397,7 +410,8 @@ abstract class ArcanistExternalLinter extends ArcanistFutureLinter {
} else {
// TODO: In commit hook mode, we need to do more handling here.
$disk_path = $this->getEngine()->getFilePathOnDisk($path);
$future = new ExecFuture('%C %s', $bin, $disk_path);
$path_argument = $this->getPathArgumentForLinterFuture($disk_path);
$future = new ExecFuture('%C %C', $bin, $path_argument);
}
$futures[$path] = $future;