Merge pull request #1 from KillerDiller/master

switch the »current« symlink in an atomic way
This commit is contained in:
Alexander Miehe 2015-01-09 19:43:38 +01:00
commit 7dd3be313a
2 changed files with 8 additions and 5 deletions

View file

@ -75,9 +75,10 @@ class ReleaseTask extends AbstractTask implements IsReleaseAware, SkipOnOverride
}
// Remove symlink if exists; create new symlink and change owners
$command = 'rm -f ' . $symlink
. ' ; '
. 'ln -sf ' . $currentCopy . ' ' . $symlink;
$tmplink = $currentCopy . '.tmp';
$command = 'ln -sfn ' . $currentCopy . ' ' . $tmplink
. ' && '
. 'mv -T ' . $tmplink . ' ' . $symlink;
if ($resultFetch && $userGroup != '') {
$command .= ' && '

View file

@ -127,9 +127,11 @@ class RollbackTask extends AbstractTask implements IsReleaseAware
$userGroup = '';
$resultFetch = $this->runCommandRemote('ls -ld ' . $rollbackTo . ' | awk \'{print \$3":"\$4}\'', $userGroup);
$command = 'rm -f ' . $symlink
$tmplink = $rollbackTo . '.tmp';
$command = 'ln -sfn ' . $currentCopy . ' ' . $tmplink
. ' && '
. 'ln -sf ' . $rollbackTo . ' ' . $symlink;
. 'mv -T ' . $tmplink . ' ' . $symlink;
if ($resultFetch) {
$command .= ' && chown -h ' . $userGroup . ' ' . $symlink;