From 67a7f9d6fe92e6f709af1891c7478759baada0f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Monta=C3=B1ez?= Date: Sat, 6 Jul 2013 20:46:29 -0300 Subject: [PATCH] Tweak config and logs. --- Mage/Console.php | 28 ++++++++++++++++++++++++++ Mage/Task/BuiltIn/Deployment/Rsync.php | 12 +++++------ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/Mage/Console.php b/Mage/Console.php index 847727a..bcebd76 100644 --- a/Mage/Console.php +++ b/Mage/Console.php @@ -63,6 +63,8 @@ class Mage_Console if ($showGrettings) { Mage_Console::output('Finished Magallanes', 0, 2); } + + self::_checkLogs($config); } /** @@ -132,4 +134,30 @@ class Mage_Console fwrite(self::$_log, $message . PHP_EOL); } } + + /** + * Check Logs + * @param Mage_Config $config + */ + private static function _checkLogs(Mage_Config $config) + { + if (self::$_logEnabled) { + $maxLogs = $config->general('maxlogs', 30); + + $logs = array(); + foreach (new RecursiveDirectoryIterator('.mage/logs', RecursiveDirectoryIterator::SKIP_DOTS) as $log) { + if (strpos($log->getFilename(), 'log-') === 0) { + $logs[] = $log->getFilename(); + } + } + + sort($logs); + if (count($logs) > $maxLogs) { + $logsToDelete = array_slice($logs, 0, count($logs) - $maxLogs); + foreach ($logsToDelete as $logToDeelte) { + unlink('.mage/logs/' . $logToDeelte); + } + } + } + } } \ No newline at end of file diff --git a/Mage/Task/BuiltIn/Deployment/Rsync.php b/Mage/Task/BuiltIn/Deployment/Rsync.php index e1c5336..10eb7ba 100644 --- a/Mage/Task/BuiltIn/Deployment/Rsync.php +++ b/Mage/Task/BuiltIn/Deployment/Rsync.php @@ -18,7 +18,7 @@ class Mage_Task_BuiltIn_Deployment_Rsync public function run() { - $overrideRelease = $this->getConfig()->getParameter('overrideRelease', false); + $overrideRelease = $this->getParameter('overrideRelease', false); if ($overrideRelease == true) { $releaseToOverride = false; @@ -56,22 +56,22 @@ class Mage_Task_BuiltIn_Deployment_Rsync . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory; $result = $this->_runLocalCommand($command); - + // Count Releases if ($this->getConfig()->release('enabled', false) == true) { $releasesDirectory = $this->getConfig()->release('directory', 'releases'); $symlink = $this->getConfig()->release('symlink', 'current'); - + if (substr($symlink, 0, 1) == '/') { $releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory; } - + $maxReleases = $this->getConfig()->release('max', false); if (($maxReleases !== false) && ($maxReleases > 0)) { $releasesList = ''; $countReleasesFetch = $this->_runRemoteCommand('ls -1 ' . $releasesDirectory, $releasesList); $releasesList = trim($releasesList); - + if ($releasesList != '') { $releasesList = explode(PHP_EOL, $releasesList); if (count($releasesList) > $maxReleases) { @@ -79,7 +79,7 @@ class Mage_Task_BuiltIn_Deployment_Rsync sort($releasesToDelete); $releasesToDeleteCount = count($releasesToDelete) - $maxReleases; $releasesToDelete = array_slice($releasesToDelete, 0, $releasesToDeleteCount + 1); - + foreach ($releasesToDelete as $releaseIdToDelete) { $directoryToDelete = $releasesDirectory . '/' . $releaseIdToDelete; if ($directoryToDelete != '/') {