mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 14:52:40 +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:
parent
5d1f87a8c2
commit
377c585752
1 changed files with 15 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue