Added identity file option for ssh and scp commands

This commit is contained in:
Osukaru 2014-04-07 12:20:41 +02:00
parent a97d172a6d
commit beb663e801
5 changed files with 27 additions and 17 deletions

View file

@ -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;
}
}
/**

View file

@ -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 . ' && '

View file

@ -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;

View file

@ -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;

View file

@ -13,7 +13,7 @@ date_default_timezone_set('UTC');
$baseDir = dirname(dirname(__FILE__));
define('MAGALLANES_VERSION', '1.0.1');
define('MAGALLANES_VERSION', '1.0.2');
define('MAGALLANES_DIRECTORY', $baseDir);
// Preload