diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2014-02-25 18:08:23 +0100 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2014-02-25 18:08:23 +0100 |
| commit | 400a6537534c4083b39debdd9e49032daf093813 (patch) | |
| tree | 80faa3b200aeee259c1b15feb146f110846e98cf /src | |
| parent | deb49c81c9d269708c6252647c1afb668b982d97 (diff) | |
| download | bdrem-400a6537534c4083b39debdd9e49032daf093813.tar.gz bdrem-400a6537534c4083b39debdd9e49032daf093813.zip | |
add option to specify config file
Diffstat (limited to 'src')
| -rw-r--r-- | src/bdrem/Config.php | 21 | ||||
| -rw-r--r-- | src/bdrem/UserInterface.php | 29 |
2 files changed, 37 insertions, 13 deletions
diff --git a/src/bdrem/Config.php b/src/bdrem/Config.php index a79b1b3..57d0cfd 100644 --- a/src/bdrem/Config.php +++ b/src/bdrem/Config.php @@ -3,19 +3,26 @@ namespace bdrem; class Config { - public $source; public $date; - public $daysPrev = 3; - public $daysNext = 7; + public $daysPrev; + public $daysNext; public $locale; - public $stopOnEmpty = false; + public $renderer; + public $source; + public $stopOnEmpty; public $cfgFiles = array(); public $cfgFileExists; - public function load() + + + public function __construct() { $this->loadConfigFilePaths(); + } + + public function load() + { foreach ($this->cfgFiles as $file) { if (file_exists($file)) { $this->cfgFileExists = true; @@ -45,7 +52,9 @@ class Config include $filename; $vars = get_defined_vars(); foreach ($vars as $k => $value) { - $this->$k = $value; + if (!isset($this->$k) || $this->$k === null) { + $this->$k = $value; + } } } diff --git a/src/bdrem/UserInterface.php b/src/bdrem/UserInterface.php index c5e29b7..2827415 100644 --- a/src/bdrem/UserInterface.php +++ b/src/bdrem/UserInterface.php @@ -9,13 +9,10 @@ abstract class UserInterface { try { $this->config = new Config(); - $this->config->load(); - setlocale(LC_TIME, $this->config->locale); - $parser = $this->loadParameters(); $res = $this->parseParameters($parser); - $this->handleCommands($res); + $this->config->load(); if (!$this->config->cfgFileExists) { throw new \Exception( "No config file found. Looked at the following places:\n" @@ -23,6 +20,9 @@ abstract class UserInterface ); } + setlocale(LC_TIME, $this->config->locale); + $this->handleCommands($res); + $source = $this->config->loadSource(); $arEvents = $source->getEvents( $this->config->date, @@ -51,7 +51,7 @@ abstract class UserInterface 'description' => 'Show NUM days after date', 'help_name' => 'NUM', 'action' => 'StoreInt', - 'default' => $this->config->daysNext, + 'default' => null, ) ); $parser->addOption( @@ -62,7 +62,7 @@ abstract class UserInterface 'description' => 'Show NUM days before date', 'help_name' => 'NUM', 'action' => 'StoreInt', - 'default' => $this->config->daysPrev, + 'default' => null, ) ); $parser->addOption( @@ -101,6 +101,17 @@ abstract class UserInterface 'action' => 'StoreString' ) ); + $parser->addOption( + 'configfile', + array( + 'short_name' => '-c', + 'long_name' => '--config', + 'help_name' => 'FILE', + 'description' => 'Path to configuration file', + 'action' => 'StoreString' + ) + ); + return $parser; } @@ -108,7 +119,11 @@ abstract class UserInterface { try { $result = $parser->parse(); - // do something with the result object + + if ($result->options['configfile'] !== null) { + $this->config->cfgFiles = array($result->options['configfile']); + } + $this->config->daysNext = $result->options['daysNext']; $this->config->daysPrev = $result->options['daysPrev']; $this->config->renderer = $result->options['renderer']; |
