Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F10360413
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/lint/linter/ArcanistPuppetLintLinter.php b/src/lint/linter/ArcanistPuppetLintLinter.php
index 1a593a9c..be2e6076 100644
--- a/src/lint/linter/ArcanistPuppetLintLinter.php
+++ b/src/lint/linter/ArcanistPuppetLintLinter.php
@@ -1,144 +1,151 @@
<?php
/**
* A linter for Puppet files.
*/
final class ArcanistPuppetLintLinter extends ArcanistExternalLinter {
private $config;
- public function getInfoURI() {
- return 'http://puppet-lint.com/';
- }
-
public function getInfoName() {
return 'puppet-lint';
}
+ public function getInfoURI() {
+ return 'http://puppet-lint.com/';
+ }
+
public function getInfoDescription() {
return pht(
- 'Use `puppet-lint` to check that your Puppet manifests conform to '.
- 'the style guide.');
+ 'Use `%s` to check that your Puppet manifests '.
+ 'conform to the style guide.',
+ 'puppet-lint');
}
public function getLinterName() {
return 'PUPPETLINT';
}
public function getLinterConfigurationName() {
return 'puppet-lint';
}
public function getDefaultBinary() {
return 'puppet-lint';
}
public function getVersion() {
list($stdout) = execx('%C --version', $this->getExecutableCommand());
$matches = array();
$regex = '/^Puppet-lint (?P<version>\d+\.\d+\.\d+)$/';
if (preg_match($regex, $stdout, $matches)) {
return $matches['version'];
} else {
return false;
}
}
public function getInstallInstructions() {
- return pht('Install puppet-lint using `gem install puppet-lint`.');
+ return pht(
+ 'Install puppet-lint using `%s`.',
+ 'gem install puppet-lint');
}
public function shouldExpectCommandErrors() {
return true;
}
public function supportsReadDataFromStdin() {
return false;
}
protected function getMandatoryFlags() {
return array(
'--error-level=all',
sprintf('--log-format=%s', implode('|', array(
'%{linenumber}',
'%{column}',
'%{kind}',
'%{check}',
'%{message}',
))),
);
}
public function getLinterConfigurationOptions() {
$options = array(
'puppet-lint.config' => array(
'type' => 'optional string',
'help' => pht('Pass in a custom configuration file path.'),
),
);
return $options + parent::getLinterConfigurationOptions();
}
public function setLinterConfigurationValue($key, $value) {
switch ($key) {
case 'puppet-lint.config':
$this->config = $value;
return;
- }
- return parent::setLinterConfigurationValue($key, $value);
+ default:
+ return parent::setLinterConfigurationValue($key, $value);
+ }
}
protected function getDefaultFlags() {
$options = array();
if ($this->config) {
$options[] = '--config='.$this->config;
}
return $options;
}
protected function parseLinterOutput($path, $err, $stdout, $stderr) {
$lines = phutil_split_lines($stdout, false);
-
$messages = array();
+
foreach ($lines as $line) {
$matches = explode('|', $line, 5);
- if (count($matches) === 5) {
- $message = new ArcanistLintMessage();
- $message->setPath($path);
- $message->setLine($matches[0]);
- $message->setChar($matches[1]);
- $message->setName(ucwords(str_replace('_', ' ', $matches[3])));
- $message->setDescription(ucfirst($matches[4]));
-
- switch ($matches[2]) {
- case 'warning':
- $message->setSeverity(ArcanistLintSeverity::SEVERITY_WARNING);
- break;
-
- case 'error':
- $message->setSeverity(ArcanistLintSeverity::SEVERITY_ERROR);
- break;
-
- default:
- $message->setSeverity(ArcanistLintSeverity::SEVERITY_ADVICE);
- break;
- }
-
- $messages[] = $message;
+ if (count($matches) < 5) {
+ continue;
+ }
+
+ $message = id(new ArcanistLintMessage())
+ ->setPath($path)
+ ->setLine($matches[0])
+ ->setChar($matches[1])
+ ->setCode($this->getLinterName())
+ ->setName(ucwords(str_replace('_', ' ', $matches[3])))
+ ->setDescription(ucfirst($matches[4]));
+
+ switch ($matches[2]) {
+ case 'warning':
+ $message->setSeverity(ArcanistLintSeverity::SEVERITY_WARNING);
+ break;
+
+ case 'error':
+ $message->setSeverity(ArcanistLintSeverity::SEVERITY_ERROR);
+ break;
+
+ default:
+ $message->setSeverity(ArcanistLintSeverity::SEVERITY_ADVICE);
+ break;
}
+
+ $messages[] = $message;
}
if ($err && !$messages) {
return false;
}
return $messages;
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Nov 8, 06:35 (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1034189
Default Alt Text
(4 KB)
Attached To
Mode
R118 Arcanist - fork
Attached
Detach File
Event Timeline
Log In to Comment