1. sfProjectDisableTask.class.php
  2. /** * Disables an application in a given environment. * * @package symfony * @subpackage task * @author Fabien Potencier * @version SVN: $Id: sfProjectDisableTask.class.php 23922 2009-11-14 14:58:38Z fabien $ */
  3. class sfProjectDisableTask extends sfBaseTask
  4. {
  5. /**
  6. * @see sfTask
  7. */
  8. protected function configure()
  9. {
  10. $this->addArguments(array(
  11. new sfCommandArgument('env', sfCommandArgument::REQUIRED, 'The environment name'),
  12. new sfCommandArgument('app', sfCommandArgument::OPTIONAL | sfCommandArgument::IS_ARRAY, 'The application name'),
  13. ));
  14. $this->namespace = 'project';
  15. $this->name = 'disable';
  16. $this->briefDescription = 'Disables an application in a given environment';
  17. $this->detailedDescription = <<<EOF
  18. The [project:disable|INFO] task disables an environment:
  19. [./symfony project:disable prod|INFO]
  20. You can also specify individual applications to be disabled in that
  21. environment:
  22. [./symfony project:disable prod frontend backend|INFO]
  23. EOF;
  24. }
  25. /**
  26. * @see sfTask
  27. */
  28. protected function execute($arguments = array(), $options = array())
  29. {
  30. if (1 == count($arguments['app']) && !file_exists(sfConfig::get('sf_apps_dir').'/'.$arguments['app'][0]))
  31. {
  32. // support previous task signature
  33. $applications = array($arguments['env']);
  34. $env = $arguments['app'][0];
  35. }
  36. else
  37. {
  38. $applications = count($arguments['app']) ? $arguments['app'] : sfFinder::type('dir')->relative()->maxdepth(0)->in(sfConfig::get('sf_apps_dir'));
  39. $env = $arguments['env'];
  40. }
  41. foreach ($applications as $app)
  42. {
  43. $lockFile = sfConfig::get('sf_data_dir').'/'.$app.'_'.$env.'.lck';
  44. if (file_exists($lockFile))
  45. {
  46. $this->logSection('enable', sprintf('%s [%s] is currently DISABLED', $app, $env));
  47. }
  48. else
  49. {
  50. $this->getFilesystem()->touch($lockFile);
  51. $this->logSection('enable', sprintf('%s [%s] has been DISABLED', $app, $env));
  52. }
  53. }
  54. }
  55. }

Debug toolbar