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:
parent
69cd86fa4f
commit
30df78f64c
1 changed files with 10 additions and 5 deletions
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue