magallanes/Mage/Console.php

97 lines
2.4 KiB
PHP
Raw Normal View History

2011-11-22 12:16:06 +01:00
<?php
class Mage_Console
2011-11-22 12:16:06 +01:00
{
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') {
2011-11-22 12:16:06 +01:00
$this->_action = 'deploy';
} else if ($this->_args[0] == 'update') {
2011-11-22 12:16:06 +01:00
$this->_action = 'update';
} else if ($this->_args[0] == 'add') {
$this->_action = 'add';
2011-11-24 02:45:04 +01:00
} else if ($this->_args[0] == 'init') {
$this->_action = 'init';
}
foreach ($this->_args as $argument) {
if (preg_match('/to:[\w]+/i', $argument)) {
2011-11-22 12:16:06 +01:00
$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)
2011-11-22 12:16:06 +01:00
{
$output = str_repeat("\t", $tabs)
. Mage_Console_Colors::color($message)
. str_repeat(PHP_EOL, $newLine);
echo $output;
2011-11-22 12:16:06 +01:00
}
public static function executeCommand($command)
{
ob_start();
system($command . ' 2>&1', $return);
$log = ob_get_clean();
return !$return;
}
2011-11-22 12:16:06 +01:00
public function run()
{
$config = new Mage_Config;
$config->loadEnvironment($this->getEnvironment());
$config->loadSCM();
2011-11-22 12:16:06 +01:00
switch ($this->getAction()) {
case 'deploy':
$task = new Mage_Task_Deploy;
$task->run($config);
2011-11-22 12:16:06 +01:00
break;
case 'update';
$task = new Mage_Task_Update;
$task->run($config);
2011-11-22 12:16:06 +01:00
break;
2011-11-24 02:45:04 +01:00
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;
2011-11-22 12:16:06 +01:00
}
}
}