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 . '' . $tasksColor . '> tasks done.', 1, 3);
+ Mage_Console::output('Deployment to ' . $config->getHost() . ' compted: <' . $tasksColor . '>' . $completedTasks . '/' . $tasks . '' . $tasksColor . '> 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';