mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 00:50:18 +01:00 
			
		
		
		
	when releasing or rolling back, don’t chown the »current« symlink before we changed / created it. also don’t screw up the ssh cmdline if no username was given.
This commit is contained in:
		
							parent
							
								
									0406c7de8a
								
							
						
					
					
						commit
						a6bcfdaddd
					
				@ -202,7 +202,8 @@ abstract class AbstractTask
 | 
			
		||||
        $localCommand = 'ssh ' . $this->getConfig()->getHostIdentityFileOption() . $needs_tty . ' -p ' . $this->getConfig()->getHostPort() . ' '
 | 
			
		||||
            . '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no '
 | 
			
		||||
            . $this->getConfig()->getConnectTimeoutOption()
 | 
			
		||||
            . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName();
 | 
			
		||||
            . ( $this->getConfig()->deployment('user') != '' ? $this->getConfig()->deployment('user') . '@' : '' )
 | 
			
		||||
            . $this->getConfig()->getHostName();
 | 
			
		||||
 | 
			
		||||
        $remoteCommand = str_replace('"', '\"', $command);
 | 
			
		||||
        if ($cdToDirectoryFirst) {
 | 
			
		||||
 | 
			
		||||
@ -78,18 +78,19 @@ class ReleaseTask extends AbstractTask implements IsReleaseAware, SkipOnOverride
 | 
			
		||||
                $command = 'chown -R ' . $userGroup . ' ' . $currentCopy
 | 
			
		||||
                    . ' && '
 | 
			
		||||
                    . 'chown ' . $userGroup . ' ' . $releasesDirectory;
 | 
			
		||||
                if (file_exists($symlink)) {
 | 
			
		||||
                    $command.= ' && ' . 'chown -h ' . $userGroup . ' ' . $symlink;
 | 
			
		||||
                }
 | 
			
		||||
                $result = $this->runCommandRemote($command);
 | 
			
		||||
                if (!$result) {
 | 
			
		||||
                    return $result;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Remove symlink if exists; create new symlink and change owner
 | 
			
		||||
            $tmplink = $currentCopy . '.tmp';
 | 
			
		||||
            $command = "ln -sfn {$currentCopy} {$tmplink} && mv -fT {$tmplink} {$symlink}";
 | 
			
		||||
            // Switch symlink and change owner
 | 
			
		||||
            $tmplink = $symlink . '.tmp';
 | 
			
		||||
            $command = "ln -sfn {$currentCopy} {$tmplink}";
 | 
			
		||||
            if ($resultFetch && $userGroup != '') {
 | 
			
		||||
                $command.= " && chown -h {$userGroup} {$tmplink}";
 | 
			
		||||
            }
 | 
			
		||||
            $command.= " && mv -fT {$tmplink} {$symlink}";
 | 
			
		||||
            $result = $this->runCommandRemote($command);
 | 
			
		||||
 | 
			
		||||
            if ($result) {
 | 
			
		||||
 | 
			
		||||
@ -100,7 +100,9 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
			
		||||
                 . $this->excludes($excludes) . ' '
 | 
			
		||||
                 . $this->excludesListFile($excludesListFilePath) . ' '
 | 
			
		||||
                 . $this->getConfig()->deployment('from') . ' '
 | 
			
		||||
                 . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
			
		||||
                 . ( $this->getConfig()->deployment('user') ? $this->getConfig()->deployment('user') . '@' : '' )
 | 
			
		||||
                 . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
			
		||||
 | 
			
		||||
        $result = $this->runCommandLocal($command);
 | 
			
		||||
 | 
			
		||||
        return $result;
 | 
			
		||||
 | 
			
		||||
@ -136,14 +136,12 @@ class RollbackTask extends AbstractTask implements IsReleaseAware
 | 
			
		||||
                    $userGroup = '';
 | 
			
		||||
                    $resultFetch = $this->runCommandRemote('ls -ld ' . $rollbackTo . ' | awk \'{print \$3":"\$4}\'', $userGroup);
 | 
			
		||||
 | 
			
		||||
                    $tmplink = $rollbackTo . '.tmp';
 | 
			
		||||
                    $command = 'ln -sfn ' . $currentCopy . ' ' . $tmplink
 | 
			
		||||
                             . ' && '
 | 
			
		||||
                             . 'mv -T ' . $tmplink . ' ' . $symlink;
 | 
			
		||||
 | 
			
		||||
                    if ($resultFetch) {
 | 
			
		||||
                        $command .= ' && chown -h ' . $userGroup . ' ' . $symlink;
 | 
			
		||||
                    $tmplink = $symlink . '.tmp';
 | 
			
		||||
                    $command = "ln -sfn {$currentCopy} {$tmplink}";
 | 
			
		||||
                    if ($resultFetch && $userGroup) {
 | 
			
		||||
                        $command .= " && chown -h {$userGroup} ${tmplink}";
 | 
			
		||||
                    }
 | 
			
		||||
                    $command .= " && mv -T {$tmplink} {$symlink}";
 | 
			
		||||
 | 
			
		||||
                    $result = $this->runCommandRemote($command);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user