mirror of https://github.com/hauke68/Magallanes
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.4 KiB
97 lines
2.4 KiB
<?php |
|
class Mage_Console |
|
{ |
|
private $_args; |
|
private $_action; |
|
private $_actionOptions; |
|
private $_environment; |
|
|
|
public function setArgs($args) |
|
{ |
|
$this->_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; |
|
} |
|
} |
|
} |