protected function execute(array $arguments = array(), array $options = array()) { $template = $arguments['template']; $destination = $arguments['destination']; if (!file_exists($template)) { throw new Exception(sprintf('Template file %s does not exist', $template)); } $generator = new nbConfigurationGenerator(); $generator->generate($template, $destination); return true; }
protected function execute(array $arguments = array(), array $options = array()) { $allPluginsDir = nbConfig::get('nb_plugins_dir'); $pluginName = $arguments['plugin-name']; $projectDir = $arguments['project-dir']; $configDir = $projectDir . '/.bee'; $beeConfig = $configDir . '/bee.yml'; $force = isset($options['force']); $pluginPath = $allPluginsDir . '/' . $pluginName; $verbose = isset($options['verbose']); if (!file_exists($pluginPath)) { throw new Exception('plugin ' . $pluginName . ' not found in ' . nbConfig::get('nb_plugins_dir')); } if (!file_exists($beeConfig)) { throw new Exception($beeConfig . ' not found'); } $configParser = sfYaml::load($beeConfig); $plugins = $configParser['project']['bee']['enabled_plugins']; $plugins = isset($configParser['project']['bee']['enabled_plugins']) ? $configParser['project']['bee']['enabled_plugins'] : array(); if (!is_array($plugins)) { $plugins = array(); } if (!in_array($pluginName, $plugins)) { array_push($plugins, $pluginName); $configParser['project']['bee']['enabled_plugins'] = $plugins; $yml = sfYaml::dump($configParser, 99); file_put_contents($beeConfig, $yml); $this->logLine('Installing plugin ' . $pluginName); } else { $this->logLine('Plugin ' . $pluginName . ' already installed'); } // Configuration will not generated if (isset($options['no-configuration'])) { return true; } // Configure plugin $pluginConfigDir = sprintf('%s/%s/config', $allPluginsDir, $pluginName); $files = nbFileFinder::create('file')->add('*.template.yml')->in($pluginConfigDir); $generator = new nbConfigurationGenerator(); $this->getFileSystem()->mkdir($configDir, true); foreach ($files as $file) { $target = sprintf('%s/%s', $configDir, str_replace('.template.yml', '.yml', basename($file))); $generator->generate($file, $target, $force); if ($verbose) { $this->logLine('file+: ' . $target, nbLogger::INFO); } } return true; }
protected function execute(array $arguments = array(), array $options = array()) { $pluginName = $arguments['plugin-name']; $force = isset($options['force']); $destination = isset($options['config-dir']) ? $options['config-dir'] : nbConfig::get('nb_config_dir'); $pluginsDir = nbConfig::get('nb_plugins_dir'); $pluginDir = sprintf('%s/%s', $pluginsDir, $pluginName); $this->logLine('Configuring plugin: ' . $pluginName, nbLogger::COMMENT); if (!is_dir($pluginDir)) { throw new LogicException('Plugin ' . $pluginName . ' not found in ' . $pluginsDir); } $source = sprintf('%s/%s/config', $pluginsDir, $pluginName); //TODO: copy all files in config (?) $files = nbFileFinder::create('file')->add('*.template.yml')->remove('.')->remove('..')->in($source); $generator = new nbConfigurationGenerator(); $this->getFileSystem()->mkdir($destination, true); foreach ($files as $file) { $target = sprintf('%s/%s', $destination, str_replace('.template.yml', '.yml', basename($file))); $generator->generate($file, $target, $force); $this->logLine('file+: ' . $target, nbLogger::INFO); } $this->logLine(sprintf('Plugin %s successully configured in %s', $pluginName, $destination), nbLogger::COMMENT); return true; }
<?php require_once dirname(__FILE__) . '/../../../../test/bootstrap/unit.php'; nbConfig::set('nb_command_dir', nbConfig::get('nb_sandbox_dir')); $dataDir = nbConfig::get('nb_data_dir') . '/config'; $sandboxDir = nbConfig::get('nb_sandbox_dir'); $compareFile = $dataDir . '/config.compare.yml'; $destinationFile = $sandboxDir . '/config.yml'; $templateFile = $dataDir . '/template.config.yml'; $templateFileNotExists = $dataDir . '/template.notexists.sample.yml'; $t = new lime_test(5); $t->comment('Generate Configuration'); $fs = nbFileSystem::getInstance(); $generator = new nbConfigurationGenerator(); $t->ok($generator->generate($templateFile, $destinationFile), 'Configuration generated successfully'); $content = removeCarriageReturn(file_get_contents($destinationFile)); $compare = removeCarriageReturn(file_get_contents($compareFile)); $t->is($content, $compare, 'Generated file content is correct'); try { $generator->generate($templateFile, $destinationFile, false); $t->fail('Cannot overwrite file'); } catch (Exception $e) { $t->pass('Cannot overwrite file'); } $t->ok($generator->generate($templateFile, $destinationFile, true), 'Can overwrite file is "force" option set'); $fs->delete($destinationFile); try { $generator->generate($templateFileNotExists, $destinationFile); $t->fail('No template file to check exists'); } catch (Exception $e) { $t->pass('No template file to check exists');