mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 00:50:18 +01:00 
			
		
		
		
	Also use common code in RsyncTask
This commit is contained in:
		
							parent
							
								
									980d209fb4
								
							
						
					
					
						commit
						0ce94c3821
					
				@ -88,40 +88,7 @@ class RsyncTask extends BaseStrategyTaskAbstract implements IsReleaseAware
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $result = $this->runCommandLocal($command);
 | 
					        $result = $this->runCommandLocal($command);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Count Releases
 | 
					        $this->cleanUpReleases();
 | 
				
			||||||
        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->runCommandRemote('ls -1 ' . $releasesDirectory, $releasesList);
 | 
					 | 
				
			||||||
                $releasesList = trim($releasesList);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                if ($countReleasesFetch && $releasesList != '') {
 | 
					 | 
				
			||||||
                    $releasesList = explode(PHP_EOL, $releasesList);
 | 
					 | 
				
			||||||
                    if (count($releasesList) > $maxReleases) {
 | 
					 | 
				
			||||||
                        $releasesToDelete = array_diff($releasesList, array($this->getConfig()->getReleaseId()));
 | 
					 | 
				
			||||||
                        sort($releasesToDelete);
 | 
					 | 
				
			||||||
                        $releasesToDeleteCount = count($releasesToDelete) - $maxReleases;
 | 
					 | 
				
			||||||
                        $releasesToDelete = array_slice($releasesToDelete, 0, $releasesToDeleteCount + 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        foreach ($releasesToDelete as $releaseIdToDelete) {
 | 
					 | 
				
			||||||
                            $directoryToDelete = $releasesDirectory . '/' . $releaseIdToDelete;
 | 
					 | 
				
			||||||
                            if ($directoryToDelete != '/') {
 | 
					 | 
				
			||||||
                                $command = 'rm -rf ' . $directoryToDelete;
 | 
					 | 
				
			||||||
                                $result = $result && $this->runCommandRemote($command);
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $result;
 | 
					        return $result;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user