Browse Source

Merge pull request #148 from gudron/exclude_from_file

Rsync , TarGz exclude from file
1.0
Andrés Montañez 10 years ago
parent
commit
a71bd5fca0
  1. 16
      Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php
  2. 19
      Mage/Task/BuiltIn/Deployment/Strategy/TarGzTask.php

16
Mage/Task/BuiltIn/Deployment/Strategy/RsyncTask.php

@ -52,6 +52,7 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
$this->checkOverrideRelease(); $this->checkOverrideRelease();
$excludes = $this->getExcludes(); $excludes = $this->getExcludes();
$excludesListFilePath = $this->getConfig()->deployment('file_containing_excludes', '');
// If we are working with releases // If we are working with releases
$deployToDirectory = $this->getConfig()->deployment('to'); $deployToDirectory = $this->getConfig()->deployment('to');
@ -95,6 +96,7 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
. $strategyFlags . ' ' . $strategyFlags . ' '
. '--rsh="ssh ' . $this->getConfig()->getHostIdentityFileOption() . '-p' . $this->getConfig()->getHostPort() . '" ' . '--rsh="ssh ' . $this->getConfig()->getHostIdentityFileOption() . '-p' . $this->getConfig()->getHostPort() . '" '
. $this->excludes($excludes) . ' ' . $this->excludes($excludes) . ' '
. $this->excludesListFile($excludesListFilePath) . ' '
. $this->getConfig()->deployment('from') . ' ' . $this->getConfig()->deployment('from') . ' '
. $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory; . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
$result = $this->runCommandLocal($command); $result = $this->runCommandLocal($command);
@ -117,4 +119,18 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
$excludesRsync = trim($excludesRsync); $excludesRsync = trim($excludesRsync);
return $excludesRsync; return $excludesRsync;
} }
/**
* Generates the Exclude from file for rsync
* @param string $excludesFilePath
* @return string
*/
protected function excludesListFile($excludesFilePath)
{
$excludesListFileRsync = '';
if(!empty($excludesFilePath)) {
$excludesListFileRsync = ' --exclude-from=' . $excludesFilePath;
}
return $excludesListFileRsync;
}
} }

19
Mage/Task/BuiltIn/Deployment/Strategy/TarGzTask.php

@ -46,6 +46,7 @@ class TarGzTask extends BaseStrategyTaskAbstract implements IsReleaseAware
$this->checkOverrideRelease(); $this->checkOverrideRelease();
$excludes = $this->getExcludes(); $excludes = $this->getExcludes();
$excludesListFilePath = $this->getConfig()->deployment('file_containing_excludes', '');;
// If we are working with releases // If we are working with releases
$deployToDirectory = $this->getConfig()->deployment('to'); $deployToDirectory = $this->getConfig()->deployment('to');
@ -66,6 +67,8 @@ class TarGzTask extends BaseStrategyTaskAbstract implements IsReleaseAware
$excludeCmd .= ' --exclude=' . $excludeFile; $excludeCmd .= ' --exclude=' . $excludeFile;
} }
$excludeFromFileCmd = $this->excludesListFile($excludesListFilePath);
// Strategy Flags // Strategy Flags
$strategyFlags = $this->getConfig()->deployment('strategy_flags', $this->getConfig()->general('strategy_flags', array())); $strategyFlags = $this->getConfig()->deployment('strategy_flags', $this->getConfig()->general('strategy_flags', array()));
if (isset($strategyFlags['targz']) && isset($strategyFlags['targz']['create'])) { if (isset($strategyFlags['targz']) && isset($strategyFlags['targz']['create'])) {
@ -74,7 +77,7 @@ class TarGzTask extends BaseStrategyTaskAbstract implements IsReleaseAware
$strategyFlags = ''; $strategyFlags = '';
} }
$command = 'tar cfzh' . $strategyFlags . ' ' . $localTarGz . '.tar.gz ' . $excludeCmd . ' -C ' . $this->getConfig()->deployment('from') . ' .'; $command = 'tar cfzh' . $strategyFlags . ' ' . $localTarGz . '.tar.gz ' . $excludeCmd . $excludeFromFileCmd . ' -C ' . $this->getConfig()->deployment('from') . ' .';
$result = $this->runCommandLocal($command); $result = $this->runCommandLocal($command);
// Strategy Flags // Strategy Flags
@ -112,4 +115,18 @@ class TarGzTask extends BaseStrategyTaskAbstract implements IsReleaseAware
return $result; return $result;
} }
/**
* Generates the Exclude from file for TarGz
* @param string $excludesFilePath
* @return string
*/
protected function excludesListFile($excludesFilePath)
{
$excludesListFileRsync = '';
if(!empty($excludesFilePath)) {
$excludesListFileRsync = ' --exclude-from=' . $excludesFilePath;
}
return $excludesListFileRsync;
}
} }

Loading…
Cancel
Save