From: Christian Weiske Date: Tue, 25 Feb 2014 06:46:37 +0000 (+0100) Subject: commands to show readme and extract config template X-Git-Tag: v0.5.0~27 X-Git-Url: https://git.cweiske.de/bdrem.git/commitdiff_plain/83afda94b7d5fc2be341712e2661f6095f608e0d?ds=inline commands to show readme and extract config template --- diff --git a/src/bdrem/Cli.php b/src/bdrem/Cli.php index ec849f4..f108e8e 100644 --- a/src/bdrem/Cli.php +++ b/src/bdrem/Cli.php @@ -9,7 +9,44 @@ class Cli extends UserInterface //set default renderer to console $parser->options['renderer']->default = 'console'; + //only on CLI + $parser->addCommand( + 'readme', array( + 'description' => 'Show README.rst file' + ) + ); + $parser->addCommand( + 'config', array( + 'description' => 'Extract configuration file' + ) + ); + return $parser; } + + protected function handleCommands($res) + { + if ($res->command_name == '') { + return; + } else if ($res->command_name == 'readme') { + $this->showReadme(); + } else if ($res->command_name == 'config') { + $this->extractConfig(); + } else { + throw new \Exception('Unknown command'); + } + } + + protected function showReadme() + { + readfile(__DIR__ . '/../../README.rst'); + exit(); + } + + protected function extractConfig() + { + readfile(__DIR__ . '/../../data/bdrem.config.php.dist'); + exit(); + } } ?> diff --git a/src/bdrem/UserInterface.php b/src/bdrem/UserInterface.php index 1b8cb56..4e27d5d 100644 --- a/src/bdrem/UserInterface.php +++ b/src/bdrem/UserInterface.php @@ -13,7 +13,8 @@ abstract class UserInterface setlocale(LC_TIME, $this->config->locale); $parser = $this->loadParameters(); - $this->parseParameters($parser); + $res = $this->parseParameters($parser); + $this->handleCommands($res); if (!$this->config->cfgFileExists) { throw new \Exception('No config file found'); @@ -110,6 +111,7 @@ abstract class UserInterface $this->config->renderer = $result->options['renderer']; $this->config->stopOnEmpty = $result->options['stopOnEmpty']; $this->config->setDate($result->options['date']); + return $result; } catch (\Exception $exc) { $this->preRenderParameterError(); $parser->displayError($exc->getMessage()); @@ -138,6 +140,10 @@ abstract class UserInterface return new $class(); } + protected function handleCommands($res) + { + } + protected function preRenderParameterError() { }