_args = $args; array_shift($this->_args); } public function parse() { if ($this->_args[0] == 'deploy') { $this->_action = 'deploy'; } else if ($this->_args[0] == 'update') { $this->_action = 'update'; } else if ($this->_args[0] == 'add') { $this->_action = 'add'; } else if ($this->_args[0] == 'init') { $this->_action = 'init'; } foreach ($this->_args as $argument) { if (preg_match('/to:[\w]+/i', $argument)) { $this->_environment = str_replace('to:', '', $argument); } } } public function getAction() { return $this->_action; } public function getEnvironment() { return $this->_environment; } public static function output($message, $tabs = 1, $newLine = 1) { $output = str_repeat("\t", $tabs) . Mage_Console_Colors::color($message) . str_repeat(PHP_EOL, $newLine); echo $output; } public static function executeCommand($command) { ob_start(); system($command . ' 2>&1', $return); $log = ob_get_clean(); return !$return; } public function run() { $config = new Mage_Config; $config->loadEnvironment($this->getEnvironment()); $config->loadSCM(); switch ($this->getAction()) { case 'deploy': $task = new Mage_Task_Deploy; $task->run($config); break; case 'update'; $task = new Mage_Task_Update; $task->run($config); break; case 'init'; $task = new Mage_Task_Init; $task->run(); break; case 'add'; switch ($this->_args[1]) { case 'environment': $task = new Mage_Task_Add; $task->environment($this->_args[2]); break; } break; } } }