Skip to content

Commit

Permalink
Provide ConsoleView classes for "[ OKAY ] Good things happened." cons…
Browse files Browse the repository at this point in the history
…ole lines

Summary:
Ref T12996. CLI tools are increasingly standardizing on the output format with a colored "OKAY", "FAIL", "SKIP", "STORAGE UPGRADE", "DEPLOY", etc., in the leftmost column for easy scanning.

However, we have like 20 different things that each render it on their own. Add a 21st in libphutil, in hopes that we can have fewer than 21 some day.

Test Plan: Used this to render a lint success message in D18645.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T12996

Differential Revision: https://secure.phabricator.com/D18646
  • Loading branch information
epriestley committed Sep 26, 2017
1 parent 134b16a commit 63518a5
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/__phutil_library_map__.php
Original file line number Diff line number Diff line change
Expand Up @@ -171,16 +171,21 @@
'PhutilCommandString' => 'xsprintf/PhutilCommandString.php',
'PhutilConsole' => 'console/PhutilConsole.php',
'PhutilConsoleBlock' => 'console/view/PhutilConsoleBlock.php',
'PhutilConsoleError' => 'console/view/PhutilConsoleError.php',
'PhutilConsoleFormatter' => 'console/PhutilConsoleFormatter.php',
'PhutilConsoleInfo' => 'console/view/PhutilConsoleInfo.php',
'PhutilConsoleList' => 'console/view/PhutilConsoleList.php',
'PhutilConsoleLogLine' => 'console/view/PhutilConsoleLogLine.php',
'PhutilConsoleMessage' => 'console/PhutilConsoleMessage.php',
'PhutilConsoleProgressBar' => 'console/PhutilConsoleProgressBar.php',
'PhutilConsoleServer' => 'console/PhutilConsoleServer.php',
'PhutilConsoleServerChannel' => 'console/PhutilConsoleServerChannel.php',
'PhutilConsoleSkip' => 'console/view/PhutilConsoleSkip.php',
'PhutilConsoleStdinNotInteractiveException' => 'console/PhutilConsoleStdinNotInteractiveException.php',
'PhutilConsoleSyntaxHighlighter' => 'markup/syntax/highlighter/PhutilConsoleSyntaxHighlighter.php',
'PhutilConsoleTable' => 'console/view/PhutilConsoleTable.php',
'PhutilConsoleView' => 'console/view/PhutilConsoleView.php',
'PhutilConsoleWarning' => 'console/view/PhutilConsoleWarning.php',
'PhutilConsoleWrapTestCase' => 'console/__tests__/PhutilConsoleWrapTestCase.php',
'PhutilContextFreeGrammar' => 'grammar/PhutilContextFreeGrammar.php',
'PhutilCowsay' => 'utils/PhutilCowsay.php',
Expand Down Expand Up @@ -788,16 +793,21 @@
'PhutilCommandString' => 'Phobject',
'PhutilConsole' => 'Phobject',
'PhutilConsoleBlock' => 'PhutilConsoleView',
'PhutilConsoleError' => 'PhutilConsoleLogLine',
'PhutilConsoleFormatter' => 'Phobject',
'PhutilConsoleInfo' => 'PhutilConsoleLogLine',
'PhutilConsoleList' => 'PhutilConsoleView',
'PhutilConsoleLogLine' => 'PhutilConsoleView',
'PhutilConsoleMessage' => 'Phobject',
'PhutilConsoleProgressBar' => 'Phobject',
'PhutilConsoleServer' => 'Phobject',
'PhutilConsoleServerChannel' => 'PhutilChannelChannel',
'PhutilConsoleSkip' => 'PhutilConsoleLogLine',
'PhutilConsoleStdinNotInteractiveException' => 'Exception',
'PhutilConsoleSyntaxHighlighter' => 'Phobject',
'PhutilConsoleTable' => 'PhutilConsoleView',
'PhutilConsoleView' => 'Phobject',
'PhutilConsoleWarning' => 'PhutilConsoleLogLine',
'PhutilConsoleWrapTestCase' => 'PhutilTestCase',
'PhutilContextFreeGrammar' => 'Phobject',
'PhutilCowsay' => 'Phobject',
Expand Down
10 changes: 10 additions & 0 deletions src/console/view/PhutilConsoleError.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

final class PhutilConsoleError
extends PhutilConsoleLogLine {

protected function getLogLineColor() {
return 'red';
}

}
10 changes: 10 additions & 0 deletions src/console/view/PhutilConsoleInfo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

final class PhutilConsoleInfo
extends PhutilConsoleLogLine {

protected function getLogLineColor() {
return 'green';
}

}
24 changes: 24 additions & 0 deletions src/console/view/PhutilConsoleLogLine.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

abstract class PhutilConsoleLogLine extends PhutilConsoleView {

private $kind;
private $message;

abstract protected function getLogLineColor();

public function __construct($kind, $message) {
$this->kind = $kind;
$this->message = $message;
}

protected function drawView() {
$color = $this->getLogLineColor();

return tsprintf(
"<bg:".$color.">** %s **</bg> %s\n",
$this->kind,
$this->message);
}

}
10 changes: 10 additions & 0 deletions src/console/view/PhutilConsoleSkip.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

final class PhutilConsoleSkip
extends PhutilConsoleLogLine {

protected function getLogLineColor() {
return 'blue';
}

}
10 changes: 10 additions & 0 deletions src/console/view/PhutilConsoleWarning.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

final class PhutilConsoleWarning
extends PhutilConsoleLogLine {

protected function getLogLineColor() {
return 'yellow';
}

}

0 comments on commit 63518a5

Please sign in to comment.