protected function execute(array $arguments = array(), array $options = array()) { $filename = isset($options['filename']) ? $options['filename'] : null; $printer = new nbConfigurationPrinter(); $printer->addConfiguration(nbConfig::getAll()); if ($filename) { $this->logLine(sprintf('bee configuration (file: %s)', $filename), nbLogger::COMMENT); $printer->addConfigurationFile($filename); } else { $dirs = array('./', nbConfig::get('nb_config_dir')); $this->logLine(sprintf('bee configuration (dirs: %s)', implode(', ', $dirs)), nbLogger::COMMENT); $finder = nbFileFinder::create('file')->add('*.yml')->maxdepth(0); foreach ($dirs as $dir) { $files = $finder->in($dir); foreach ($files as $file) { $this->logLine('Adding ' . $file, nbLogger::COMMENT); $printer->addConfigurationFile($file); } } } $this->logLine($printer->printAll()); return true; }
public function checkConfiguration($configDir, $configFilename) { $configFile = $this->parser->checkDefaultConfigurationDirs($configFilename); if (!file_exists($configFile)) { throw new InvalidArgumentException(sprintf('Config file "%s" does not exist', $configFilename)); } // Check configuration $checker = new nbConfigurationChecker(array('logger' => $this->getLogger(), 'verbose' => $this->isVerbose())); $configuration = new nbConfiguration(); $configuration->add(nbConfig::getAll()); $configuration->add(sfYaml::load($configFile), '', true); try { $checker->check($configDir . '/' . $this->getTemplateConfigFilename(), $configuration); } catch (Exception $e) { $this->logLine('Configuration file doesn\'t match the template', nbLogger::ERROR); $printer = new nbConfigurationPrinter(); $printer->addConfiguration($configuration->getAll()); // $printer->addConfigurationFile($configFile); $printer->addConfigurationErrors($checker->getErrors()); $this->logLine($printer->printAll()); throw $e; } return $configFile; }