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;
include $filename;
$vars = get_defined_vars();
foreach ($vars as $k => $value) {
- $this->$k = $value;
+ if (!isset($this->$k) || $this->$k === null) {
+ $this->$k = $value;
+ }
}
}
{
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"
);
}
+ setlocale(LC_TIME, $this->config->locale);
+ $this->handleCommands($res);
+
$source = $this->config->loadSource();
$arEvents = $source->getEvents(
$this->config->date,
'description' => 'Show NUM days after date',
'help_name' => 'NUM',
'action' => 'StoreInt',
- 'default' => $this->config->daysNext,
+ 'default' => null,
)
);
$parser->addOption(
'description' => 'Show NUM days before date',
'help_name' => 'NUM',
'action' => 'StoreInt',
- 'default' => $this->config->daysPrev,
+ 'default' => null,
)
);
$parser->addOption(
'action' => 'StoreString'
)
);
+ $parser->addOption(
+ 'configfile',
+ array(
+ 'short_name' => '-c',
+ 'long_name' => '--config',
+ 'help_name' => 'FILE',
+ 'description' => 'Path to configuration file',
+ 'action' => 'StoreString'
+ )
+ );
+
return $parser;
}
{
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'];