diff --git a/.gitignore b/.gitignore index 458da2e..5dc363a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ .project .buildpath .idea +vendor # OS generated files # // GitHub Recommendation ###################### diff --git a/Mage/Command/BuiltIn/DeployCommand.php b/Mage/Command/BuiltIn/DeployCommand.php index 829a329..d1888b3 100644 --- a/Mage/Command/BuiltIn/DeployCommand.php +++ b/Mage/Command/BuiltIn/DeployCommand.php @@ -35,6 +35,7 @@ class DeployCommand extends AbstractCommand implements RequiresEnvironment const DEPLOY_STRATEGY_RSYNC = 'rsync'; const DEPLOY_STRATEGY_TARGZ = 'targz'; const DEPLOY_STRATEGY_GIT_REBASE = 'git-rebase'; + const DEPLOY_STRATEGY_GIT_REMOTE_CACHE = 'git-remote-cache'; const DEPLOY_STRATEGY_GUESS = 'guess'; const DEFAULT_DEPLOY_STRATEGY = self::DEPLOY_STRATEGY_GUESS; @@ -557,6 +558,10 @@ class DeployCommand extends AbstractCommand implements RequiresEnvironment $deployStrategy = 'deployment/strategy/git-rebase'; break; + case self::DEPLOY_STRATEGY_GIT_REMOTE_CACHE: + $deployStrategy = 'deployment/strategy/git-remote-cache'; + break; + case self::DEPLOY_STRATEGY_GUESS: default: if ($this->getConfig()->release('enabled', false) == true) { diff --git a/Mage/Task/BuiltIn/Composer/ComposerAbstractTask.php b/Mage/Task/BuiltIn/Composer/ComposerAbstractTask.php index e61c32d..26fe609 100644 --- a/Mage/Task/BuiltIn/Composer/ComposerAbstractTask.php +++ b/Mage/Task/BuiltIn/Composer/ComposerAbstractTask.php @@ -19,8 +19,9 @@ use Mage\Task\AbstractTask; */ abstract class ComposerAbstractTask extends AbstractTask { - protected function getComposerPath() + protected function getComposerCmd() { - return $this->getConfig()->general('composer_path', 'php composer.phar'); + $composerCmd = $this->getParameter('composer_cmd', $this->getConfig()->general('composer_cmd', 'php composer.phar')); + return $this->getConfig()->general('composer_cmd', $composerCmd); } -} \ No newline at end of file +} diff --git a/Mage/Task/BuiltIn/Composer/GenerateAutoloadTask.php b/Mage/Task/BuiltIn/Composer/GenerateAutoloadTask.php index ea1acf4..2fdafea 100644 --- a/Mage/Task/BuiltIn/Composer/GenerateAutoloadTask.php +++ b/Mage/Task/BuiltIn/Composer/GenerateAutoloadTask.php @@ -23,6 +23,6 @@ class GenerateAutoloadTask extends ComposerAbstractTask */ public function run() { - return $this->runCommand($this->getComposerPath() . ' dumpautoload --optimize'); + return $this->runCommand($this->getComposerCmd() . ' dumpautoload --optimize'); } } diff --git a/Mage/Task/BuiltIn/Composer/InstallTask.php b/Mage/Task/BuiltIn/Composer/InstallTask.php index 42c468c..291ccf8 100644 --- a/Mage/Task/BuiltIn/Composer/InstallTask.php +++ b/Mage/Task/BuiltIn/Composer/InstallTask.php @@ -23,6 +23,7 @@ class InstallTask extends ComposerAbstractTask */ public function run() { - return $this->runCommand($this->getComposerPath() . ' install'); + $dev = $this->getParameter('dev', true); + return $this->runCommand($this->getComposerCmd() . ' install' . ($dev ? ' --dev' : ' --no-dev')); } } diff --git a/Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php b/Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php index 2dbdb7d..c4c92ad 100644 --- a/Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php +++ b/Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php @@ -111,7 +111,7 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware { $excludesRsync = ''; foreach ($excludes as $exclude) { - $excludesRsync .= ' --exclude ' . $exclude . ' '; + $excludesRsync .= ' --exclude=' . escapeshellarg($exclude) . ' '; } $excludesRsync = trim($excludesRsync); diff --git a/bin/mage b/bin/mage index 9f6e436..b668d45 100755 --- a/bin/mage +++ b/bin/mage @@ -9,19 +9,21 @@ * file that was distributed with this source code. */ -use Mage\Autoload; - date_default_timezone_set('UTC'); $baseDir = dirname(dirname(__FILE__)); -define('MAGALLANES_VERSION', '1.0.1'); +define('MAGALLANES_VERSION', '1.0.2'); define('MAGALLANES_DIRECTORY', $baseDir); -// Preload -require_once $baseDir . '/Mage/Autoload.php'; -$loader = new Autoload(); -spl_autoload_register(array($loader, 'autoLoad')); +if (file_exists(__DIR__ . '/../vendor/autoload.php')) { + require_once __DIR__ . '/../vendor/autoload.php'; +} else { + require_once $baseDir . '/Mage/Autoload.php'; + $loader = new \Mage\Autoload(); + spl_autoload_register(array($loader, 'autoLoad')); +} + // Clean arguments array_shift($argv); diff --git a/composer.json b/composer.json index c533d31..4018174 100644 --- a/composer.json +++ b/composer.json @@ -8,6 +8,13 @@ "require": { "php": ">=5.3" }, + "autoload": { + "psr-4": { + "Mage\\": "./Mage", + "Task\\": ".mage/tasks", + "Command\\": ".mage/commands" + } + }, "bin": [ "bin/mage" ]