mirror of
				https://github.com/hauke68/Magallanes.git
				synced 2025-11-04 00:50:18 +01:00 
			
		
		
		
	Merge pull request #49 from Osukaru/master
Added identity file option for ssh and scp commands
This commit is contained in:
		
						commit
						4d45c30bd4
					
				@ -341,10 +341,20 @@ class Config
 | 
			
		||||
    public function getHostPort()
 | 
			
		||||
    {
 | 
			
		||||
        $info = explode(':', $this->host);
 | 
			
		||||
        $info[] = $this->deployment('port', '22');
 | 
			
		||||
        $info[] = $this->deployment('port', '22');
 | 
			
		||||
        return $info[1];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the general Host Identity File Option
 | 
			
		||||
     *
 | 
			
		||||
     * @return string
 | 
			
		||||
     */
 | 
			
		||||
    public function getHostIdentityFileOption()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->deployment('identity-file') ? '-i '.$this->deployment('identity-file').' ': '';
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the current Host
 | 
			
		||||
     *
 | 
			
		||||
@ -405,7 +415,7 @@ class Config
 | 
			
		||||
    	}
 | 
			
		||||
 | 
			
		||||
    	// Global Config
 | 
			
		||||
        $config = $this->getEnvironmentOption('deployment', array());
 | 
			
		||||
        $config = $this->getEnvironmentOption('deployment', array());
 | 
			
		||||
        if (isset($config[$option])) {
 | 
			
		||||
            if (is_array($default) && ($config[$option] == '')) {
 | 
			
		||||
                return $default;
 | 
			
		||||
@ -424,7 +434,7 @@ class Config
 | 
			
		||||
     * @param string $default
 | 
			
		||||
     * @return mixed
 | 
			
		||||
     */
 | 
			
		||||
    public function release($option, $default = false)
 | 
			
		||||
    public function release($option, $default = false)
 | 
			
		||||
    {
 | 
			
		||||
    	// Host Config
 | 
			
		||||
    	if (is_array($this->hostConfig) && isset($this->hostConfig['releases'])) {
 | 
			
		||||
@ -432,17 +442,17 @@ class Config
 | 
			
		||||
    			return $this->hostConfig['releases'][$option];
 | 
			
		||||
    		}
 | 
			
		||||
    	}
 | 
			
		||||
 | 
			
		||||
        $config = $this->getEnvironmentOption('releases', array());
 | 
			
		||||
 | 
			
		||||
        $config = $this->getEnvironmentOption('releases', array());
 | 
			
		||||
        if (isset($config[$option])) {
 | 
			
		||||
            if (is_array($default) && ($config[$option] == '')) {
 | 
			
		||||
                return $default;
 | 
			
		||||
            } else {
 | 
			
		||||
                return $config[$option];
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            return $default;
 | 
			
		||||
        }
 | 
			
		||||
            if (is_array($default) && ($config[$option] == '')) {
 | 
			
		||||
                return $default;
 | 
			
		||||
            } else {
 | 
			
		||||
                return $config[$option];
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            return $default;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 | 
			
		||||
@ -192,7 +192,7 @@ abstract class AbstractTask
 | 
			
		||||
        // if general.yml includes "ssy_needs_tty: true", then add "-t" to the ssh command
 | 
			
		||||
        $needs_tty = ($this->getConfig()->general('ssh_needs_tty',false) ? '-t' : '');
 | 
			
		||||
 | 
			
		||||
        $localCommand = 'ssh ' . $needs_tty . ' -p ' . $this->getConfig()->getHostPort() . ' '
 | 
			
		||||
        $localCommand = 'ssh ' . $this->getConfig()->getHostIdentityFileOption() . $needs_tty . ' -p ' . $this->getConfig()->getHostPort() . ' '
 | 
			
		||||
                      . '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no '
 | 
			
		||||
                      . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ' '
 | 
			
		||||
                      . '"cd ' . rtrim($this->getConfig()->deployment('to'), '/') . $releasesDirectory . ' && '
 | 
			
		||||
 | 
			
		||||
@ -94,7 +94,7 @@ class RsyncTask extends AbstractTask implements IsReleaseAware
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $command = 'rsync -avz '
 | 
			
		||||
                 . '--rsh="ssh -p' . $this->getConfig()->getHostPort() . '" '
 | 
			
		||||
                 . '--rsh="ssh ' . $this->getConfig()->getHostIdentityFileOption() . '-p' . $this->getConfig()->getHostPort() . '" '
 | 
			
		||||
                 . $this->excludes(array_merge($excludes, $userExcludes)) . ' '
 | 
			
		||||
                 . $this->getConfig()->deployment('from') . ' '
 | 
			
		||||
                 . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
			
		||||
 | 
			
		||||
@ -89,7 +89,7 @@ class TarGzTask extends AbstractTask implements IsReleaseAware
 | 
			
		||||
        $result = $this->runCommandLocal($command);
 | 
			
		||||
 | 
			
		||||
        // Copy Tar Gz  to Remote Host
 | 
			
		||||
        $command = 'scp -P ' . $this->getConfig()->getHostPort() . ' ' . $localTarGz . '.tar.gz '
 | 
			
		||||
        $command = 'scp ' . $this->getConfig()->getHostIdentityFileOption() . '-P ' . $this->getConfig()->getHostPort() . ' ' . $localTarGz . '.tar.gz '
 | 
			
		||||
                 . $this->getConfig()->deployment('user') . '@' . $this->getConfig()->getHostName() . ':' . $deployToDirectory;
 | 
			
		||||
        $result = $this->runCommandLocal($command) && $result;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user