mirror of
https://github.com/hauke68/Magallanes.git
synced 2026-09-06 09:28:57 +02:00
Add command help option
This commit is contained in:
@@ -26,6 +26,10 @@ abstract class AbstractCommand
|
||||
*/
|
||||
protected $config = null;
|
||||
|
||||
private $helpMessage;
|
||||
private $usageExamples = [];
|
||||
private $syntaxMessage;
|
||||
|
||||
/**
|
||||
* Runs the Command
|
||||
* @return integer exit code
|
||||
@@ -52,4 +56,65 @@ abstract class AbstractCommand
|
||||
{
|
||||
return $this->config;
|
||||
}
|
||||
|
||||
public function setHelpMessage($message)
|
||||
{
|
||||
$this->helpMessage = $message;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addUsageExample($snippet, $description = '')
|
||||
{
|
||||
array_push($this->usageExamples, [$snippet, $description]);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setSyntaxMessage($message)
|
||||
{
|
||||
$this->syntaxMessage = $message;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getInfoMessage()
|
||||
{
|
||||
$indent = str_repeat(" ", 4);
|
||||
|
||||
$output = "";
|
||||
|
||||
if (!empty($this->helpMessage)) {
|
||||
$output .= "\n";
|
||||
$output .= $this->helpMessage . "\n";
|
||||
}
|
||||
|
||||
if (!empty($this->syntaxMessage)) {
|
||||
$output .= "\n";
|
||||
$output .= "Syntax:\n";
|
||||
$output .= $indent;
|
||||
$output .= $this->syntaxMessage;
|
||||
$output .= "\n";
|
||||
}
|
||||
|
||||
if (!empty($this->usageExamples)) {
|
||||
$output .= "\n";
|
||||
$output .= "Usage examples:\n";
|
||||
foreach ($this->usageExamples as $example) {
|
||||
$snippet = $example[0];
|
||||
$description = $example[1];
|
||||
$output .= "$indent* ";
|
||||
if (!empty($description)) {
|
||||
$description = rtrim($description, ': ') . ":";
|
||||
$output .= $description;
|
||||
$output .= "\n$indent$indent";
|
||||
}
|
||||
|
||||
$output .= $snippet;
|
||||
$output .= "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user