示例#1
0
文件: Table.php 项目: rodrisan/ps-cli
 /**
  * Add a cell to the table.
  *
  * @param string $text The text of the cell.
  * @param array $wrap A two element array used to wrap the text in the cell.
  * @return $this Returns this object for fluent calls.
  */
 protected function addCell($text, $wrap = ['', ''])
 {
     if ($this->currentRow === null) {
         $this->row();
     }
     $i = count($this->currentRow);
     $this->columnWidths[$i] = max(strlen($text), Cli::val($i, $this->columnWidths, 0));
     // max column width
     $this->currentRow[$i] = [$text, $wrap];
     return $this;
 }
示例#2
0
文件: Args.php 项目: rodrisan/ps-cli
 /**
  * Get the value of a passed option.
  *
  * @param string $option The name of the option to get.
  * @param mixed $default The default value if the option does not exist.
  * @return mixed Returns the option or {@link $default} if it does not exist.
  */
 public function getOpt($option, $default = null)
 {
     return Cli::val($option, $this->opts, $default);
 }
示例#3
0
 /**
  * Writes the help for a given schema.
  *
  * @param array $schema A command line scheme returned from {@see Cli::getSchema()}.
  */
 protected function writeHelp($schema)
 {
     // Write the command description.
     $meta = Cli::val(Cli::META, $schema, []);
     $description = Cli::val('description', $meta);
     if ($description) {
         echo implode("\n", Cli::breakLines($description, 80, false)) . PHP_EOL . PHP_EOL;
     }
     unset($schema[Cli::META]);
     // Add the help.
     $schema['help'] = ['description' => 'Display this help.', 'type' => 'boolean', 'short' => '?'];
     echo Cli::bold('OPTIONS') . PHP_EOL;
     ksort($schema);
     $table = new Table();
     $table->format = $this->format;
     foreach ($schema as $key => $definition) {
         $table->row();
         // Write the keys.
         $keys = "--{$key}";
         if ($shortKey = Cli::val('short', $definition, false)) {
             $keys .= ", -{$shortKey}";
         }
         if (Cli::val('required', $definition)) {
             $table->bold($keys);
         } else {
             $table->cell($keys);
         }
         // Write the description.
         $table->cell(Cli::val('description', $definition, ''));
     }
     $table->write();
     echo PHP_EOL;
     $args = Cli::val(Cli::ARGS, $meta, []);
     if (!empty($args)) {
         echo Cli::bold('ARGUMENTS') . PHP_EOL;
         $table = new Table();
         $table->format = $this->format;
         foreach ($args as $aname => $arg) {
             $table->row();
             if (Cli::val('required', $definition)) {
                 $table->bold($aname);
             } else {
                 $table->cell($aname);
             }
             $table->cell(Cli::val('description', $arg, ''));
         }
         $table->write();
         echo PHP_EOL;
     }
 }