/**
  * Display the help message
  * @return void
  */
 public function showHelp()
 {
     $options = $this->getOptions();
     if (count($options)) {
         _writeln('Usage:');
         $usage = _indent() . $this->name . ' [options]';
         if (count($this->arguments)) {
             $usage .= ' [<' . implode('>] [<', $this->argumentNames) . '>]';
         }
         _writeln($usage);
         # Arguments
         if (count($this->arguments)) {
             _writeln();
             _writeln('Arguments:');
             $table = new ConsoleTable();
             $table->hideBorder()->setPadding(2);
             foreach ($this->arguments as $arg) {
                 $table->addRow();
                 $table->addColumn($arg['name']);
                 $desc = $arg['description'];
                 if ($arg['default']) {
                     $desc .= ' [default: "' . $arg['default'] . '"]';
                 }
                 $table->addColumn($desc);
             }
             $table->display();
         }
         # Options
         if (count($options)) {
             _writeln();
             _writeln('Options:');
             $table = new ConsoleTable();
             $table->hideBorder()->setPadding(2);
             foreach ($this->options as $name => $opt) {
                 $table->addRow();
                 $table->addColumn($opt['key']);
                 $desc = $opt['description'];
                 if ($opt['default']) {
                     $desc .= ' [default: "' . $opt['default'] . '"]';
                 }
                 $table->addColumn($desc);
             }
             $table->display();
         }
         if ($this->description) {
             _writeln();
             _writeln('Help:');
             _writeln(_indent() . $this->description);
         }
     }
 }