1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-09-20 00:49:11 +02:00

arc unit --output none

Summary:
Support for no output from arc unit (For scripts, etc).
Also include --output param, analogous to arc lint --output.

Test Plan: run all 6 variants + `--output bad-value`

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D6642
This commit is contained in:
Aviv Eyal 2013-08-01 12:07:11 -07:00 committed by epriestley
parent 5b69749812
commit d54f0f69d4

View file

@ -72,6 +72,18 @@ EOTEXT
'json' => array(
'help' => 'Report results in JSON format.',
),
'output' => array(
'param' => 'format',
'help' =>
"With 'full', show full pretty report (Default). ".
"With 'json', report results in JSON format. ".
"With 'ugly', use uglier (but more efficient) JSON formatting. ".
"With 'none', don't print results. ",
'conflicts' => array(
'json' => 'Only one output format allowed',
'ugly' => 'Only one output format allowed',
)
),
'everything' => array(
'help' => 'Run every test.',
'conflicts' => array(
@ -162,9 +174,9 @@ EOTEXT
$console = PhutilConsole::getConsole();
$json_output = $this->getArgument('json');
$output_format = $this->getOutputFormat();
if ($json_output) {
if ($output_format !== 'full') {
$console->disableOut();
}
@ -252,17 +264,24 @@ EOTEXT
}
}
if ($json_output) {
if ($output_format !== 'full') {
$console->enableOut();
$data = array_values(mpull($results, 'toDictionary'));
if ($this->getArgument('ugly')) {
}
$data = array_values(mpull($results, 'toDictionary'));
switch ($output_format) {
case 'ugly':
$console->writeOut('%s', json_encode($data));
} else {
break;
case 'json':
$json = new PhutilJSON();
$console->writeOut('%s', $json->encodeFormatted($data));
}
break;
case 'full':
// already printed
break;
case 'none':
// do nothing
break;
}
return $overall_result;
@ -316,4 +335,21 @@ EOTEXT
return $out;
}
private function getOutputFormat() {
if ($this->getArgument('ugly')) {
return 'ugly';
}
if ($this->getArgument('json')) {
return 'json';
}
$format = $this->getArgument('output');
$known_formats = array(
'none' => 'none',
'json' => 'json',
'ugly' => 'ugly',
'full' => 'full',
);
return idx($known_formats, $format, 'full');
}
}