1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-12-22 05:20:55 +01:00

Improve the handling of .arclint files.

Summary: Throw a useful error message when an `.arclint` file is not valid JSON.

Test Plan:
Modified an `.arclint` file to be invalid JSON.

```
> arc lint
Exception
Parse error on line 24 at column 5: Expected one of: 'EOF', '}', ',', ']'
(Run with --trace for a full exception trace.)
```

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Differential Revision: https://secure.phabricator.com/D9679
This commit is contained in:
Joshua Spence 2014-06-24 09:24:30 +10:00
parent 69cd86fa4f
commit 30df78f64c

View file

@ -13,11 +13,16 @@ final class ArcanistConfigurationDrivenLintEngine extends ArcanistLintEngine {
}
$data = Filesystem::readFile($config_path);
$config = json_decode($data, true);
if (!is_array($config)) {
throw new Exception(
"Expected '.arclint' file to be a valid JSON file, but failed to ".
"decode it: {$config_path}");
$config = null;
try {
$config = phutil_json_decode($data);
} catch (PhutilJSONParserException $ex) {
throw new PhutilProxyException(
pht(
"Expected '.arclint' file to be a valid JSON file, but failed to ".
"decode %s",
$config_path),
$ex);
}
$linters = $this->loadAvailableLinters();