* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Enables an application in a given environment. * * @package symfony * @subpackage task * @author Fabien Potencier * @version SVN: $Id: sfProjectEnableTask.class.php 23922 2009-11-14 14:58:38Z fabien $ */ class sfProjectEnableTask extends sfBaseTask { /** * @see sfTask */ protected function configure() { $this->addArguments(array( new sfCommandArgument('env', sfCommandArgument::REQUIRED, 'The environment name'), new sfCommandArgument('app', sfCommandArgument::OPTIONAL | sfCommandArgument::IS_ARRAY, 'The application name'), )); $this->namespace = 'project'; $this->name = 'enable'; $this->briefDescription = 'Enables an application in a given environment'; $this->detailedDescription = <<relative()->maxdepth(0)->in(sfConfig::get('sf_apps_dir')); $env = $arguments['env']; } foreach ($applications as $app) { $lockFile = sfConfig::get('sf_data_dir').'/'.$app.'_'.$env.'.lck'; if (!file_exists($lockFile)) { $this->logSection('enable', sprintf('%s [%s] is currently ENABLED', $app, $env)); } else { $this->getFilesystem()->remove($lockFile); $clearCache = new sfCacheClearTask($this->dispatcher, $this->formatter); $clearCache->setCommandApplication($this->commandApplication); $clearCache->setConfiguration($this->configuration); $clearCache->run(array(), array('--app='.$app, '--env='.$env)); $this->logSection('enable', sprintf('%s [%s] has been ENABLED', $app, $env)); } } } }