diff --git a/Mage/Config.php b/Mage/Config.php index cc989cf..721679e 100644 --- a/Mage/Config.php +++ b/Mage/Config.php @@ -1,6 +1,7 @@ _environment = spyc_load_file('.mage/config/environment/' . $environment . '.yml'); + $this->_environment = spyc_load_file('.mage/config/environment/' . $environment . '.yml'); + $this->_environmentName = $environment; } } @@ -33,6 +35,11 @@ class Mage_Config return $this->_environment; } + public function getEnvironmentName() + { + return $this->_environmentName; + } + public function getSCM() { return $this->_scm; diff --git a/Mage/Task/BuiltIn/Deployment/Releases.php b/Mage/Task/BuiltIn/Deployment/Releases.php index 20cfb56..937244e 100644 --- a/Mage/Task/BuiltIn/Deployment/Releases.php +++ b/Mage/Task/BuiltIn/Deployment/Releases.php @@ -16,10 +16,13 @@ class Mage_Task_BuiltIn_Deployment_Releases $currentCopy = $releasesDirectory . '/' . $this->_config->getReleaseId(); - $userGroup = ''; - $resultFetch = $this->_runRemoteCommand('ls -ld ' . $symlink . ' | awk \'{print \$3\":\"\$4}\'', $userGroup); + // Fetch the user and group from base directory + $userGroup = '33:33'; + $resultFetch = $this->_runRemoteCommand('ls -ld . | awk \'{print \$3\":\"\$4}\'', $userGroup); + + // Remove symlink if exists; create new symlink and change owners $command = 'rm -f ' . $symlink - . ' && ' + . ' ; ' . 'ln -sf ' . $currentCopy . ' ' . $symlink . ' && ' . 'chown -h ' . $userGroup . ' ' . $symlink diff --git a/Mage/Task/BuiltIn/Releases/Rollback.php b/Mage/Task/BuiltIn/Releases/Rollback.php index ebc9600..2247853 100644 --- a/Mage/Task/BuiltIn/Releases/Rollback.php +++ b/Mage/Task/BuiltIn/Releases/Rollback.php @@ -73,7 +73,7 @@ class Mage_Task_BuiltIn_Releases_Rollback } else { foreach ($tasksToRun as $taskName) { - $task = Mage_Task_Factory::get($taskName, $this->_config, true); + $task = Mage_Task_Factory::get($taskName, $this->_config, true, 'deploy'); $task->init(); Mage_Console::output('Running ' . $task->getName() . ' ... ', 2, false); diff --git a/Mage/Task/Deploy.php b/Mage/Task/Deploy.php index 59ba9d4..62e1bb0 100644 --- a/Mage/Task/Deploy.php +++ b/Mage/Task/Deploy.php @@ -28,7 +28,7 @@ class Mage_Task_Deploy $tasks = 0; $completedTasks = 0; - Mage_Console::output('Deploying to ' . $config->getHostName() . ''); + Mage_Console::output('Deploying to ' . $config->getHost() . ''); $tasksToRun = $config->getTasks(); array_unshift($tasksToRun, 'deployment/rsync'); @@ -40,12 +40,12 @@ class Mage_Task_Deploy if (count($tasksToRun) == 0) { Mage_Console::output('Warning! No Deployment tasks defined.', 2); - Mage_Console::output('Deployment to ' . $config->getHostName() . ' skipped!', 1, 3); + Mage_Console::output('Deployment to ' . $config->getHost() . ' skipped!', 1, 3); } else { foreach ($tasksToRun as $taskName) { $tasks++; - $task = Mage_Task_Factory::get($taskName, $config); + $task = Mage_Task_Factory::get($taskName, $config, false, 'deploy'); $task->init(); Mage_Console::output('Running ' . $task->getName() . ' ... ', 2, false); @@ -65,7 +65,7 @@ class Mage_Task_Deploy $tasksColor = 'red'; } - Mage_Console::output('Deployment to ' . $config->getHostName() . ' compted: <' . $tasksColor . '>' . $completedTasks . '/' . $tasks . ' tasks done.', 1, 3); + Mage_Console::output('Deployment to ' . $config->getHost() . ' compted: <' . $tasksColor . '>' . $completedTasks . '/' . $tasks . ' tasks done.', 1, 3); } } } @@ -101,7 +101,7 @@ class Mage_Task_Deploy foreach ($tasksToRun as $taskName) { $tasks++; - $task = Mage_Task_Factory::get($taskName, $config); + $task = Mage_Task_Factory::get($taskName, $config, false, $stage); $task->init(); Mage_Console::output('Running ' . $task->getName() . ' ... ', 2, 0); diff --git a/Mage/Task/Factory.php b/Mage/Task/Factory.php index 7819239..b59c63f 100644 --- a/Mage/Task/Factory.php +++ b/Mage/Task/Factory.php @@ -8,7 +8,7 @@ class Mage_Task_Factory * @param boolean $inRollback * @return Mage_Task_TaskAbstract */ - public static function get($taskName, Mage_Config $taskConfig, $inRollback = false) + public static function get($taskName, Mage_Config $taskConfig, $inRollback = false, $stage = null) { $instance = null; $taskName = ucwords(str_replace('-', ' ', $taskName)); @@ -17,12 +17,12 @@ class Mage_Task_Factory if (strpos($taskName, '/') === false) { Mage_Autoload::loadUserTask($taskName); $className = 'Task_' . ucfirst($taskName); - $instance = new $className($taskConfig, $inRollback); + $instance = new $className($taskConfig, $inRollback, $stage); } else { $taskName = str_replace(' ', '_', ucwords(str_replace('/', ' ', $taskName))); $className = 'Mage_Task_BuiltIn_' . $taskName; - $instance = new $className($taskConfig, $inRollback); + $instance = new $className($taskConfig, $inRollback, $stage); } assert($instance instanceOf Mage_Task_TaskAbstract); diff --git a/Mage/Task/Init.php b/Mage/Task/Init.php index 1e7504f..56fe07d 100644 --- a/Mage/Task/Init.php +++ b/Mage/Task/Init.php @@ -17,7 +17,7 @@ class Mage_Task_Init $results[] = mkdir($configDir . '/tasks'); $results[] = mkdir($configDir . '/config'); $results[] = mkdir($configDir . '/config/environment'); - $results[] = file_put_contents($configDir . '/config/global.yml', '#global settings' . PHP_EOL . PHP_EOL); + $results[] = file_put_contents($configDir . '/config/general.yml', '#global settings' . PHP_EOL . PHP_EOL); $results[] = file_put_contents($configDir . '/config/scm.yml', '#scm settings' . PHP_EOL . PHP_EOL); if (!in_array(false, $results)) { diff --git a/Mage/Task/TaskAbstract.php b/Mage/Task/TaskAbstract.php index 894e985..8d1c9f8 100644 --- a/Mage/Task/TaskAbstract.php +++ b/Mage/Task/TaskAbstract.php @@ -3,15 +3,17 @@ abstract class Mage_Task_TaskAbstract { protected $_config = null; protected $_inRollback = false; + protected $_stage = null; public abstract function getName(); public abstract function run(); - public final function __construct(Mage_Config $config, $inRollback = false) + public final function __construct(Mage_Config $config, $inRollback = false, $stage = null) { $this->_config = $config; $this->_inRollback = $inRollback; + $this->_stage = $stage; } public function inRollback() @@ -19,6 +21,16 @@ abstract class Mage_Task_TaskAbstract return $this->_inRollback; } + public function getStage() + { + return $this->_stage; + } + + public function getConfig() + { + return $this->_config; + } + public function init() { } diff --git a/bin/mage b/bin/mage index 8cb2774..fb88ab4 100755 --- a/bin/mage +++ b/bin/mage @@ -1,5 +1,5 @@ #!/bin/sh -#VERSION:0.9.7 +#VERSION:0.9.8 SCRIPT=$(readlink -f $0) DIR=$(dirname $SCRIPT) diff --git a/bin/mage.php b/bin/mage.php index 642b0e3..03f3733 100644 --- a/bin/mage.php +++ b/bin/mage.php @@ -24,7 +24,7 @@ date_default_timezone_set('UTC'); $baseDir = dirname(dirname(__FILE__)); -define('MAGALLANES_VERSION', '0.9.7'); +define('MAGALLANES_VERSION', '0.9.8'); require_once $baseDir . '/Mage/spyc.php'; require_once $baseDir . '/Mage/Autoload.php';