mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 14:52:41 +01:00
Handle "-p port" flag in ssh-connect
Summary: The documentation is explicit that Git does not pass this flag: The $GIT_SSH command will be given exactly two arguments: the username@host (or just host) from the URL and the shell command to execute on that remote system. This isn't true; it does. Accommodate it. I'll see if I can fix this in the upstream, too. Test Plan: Ran various `ssh-connect` commands with -p, etc. Reviewers: btrahan Reviewed By: btrahan CC: aran Differential Revision: https://secure.phabricator.com/D7680
This commit is contained in:
parent
e19ad8ab8a
commit
d59722321f
1 changed files with 21 additions and 1 deletions
|
@ -7,6 +7,20 @@
|
|||
$root = dirname(dirname(dirname(__FILE__)));
|
||||
require_once $root.'/scripts/__init_script__.php';
|
||||
|
||||
// Contrary to the documentation, Git may pass a "-p" flag. If it does, respect
|
||||
// it and move it before the "--" argument.
|
||||
$args = new PhutilArgumentParser($argv);
|
||||
$args->parsePartial(
|
||||
array(
|
||||
array(
|
||||
'name' => 'port',
|
||||
'short' => 'p',
|
||||
'param' => pht('port'),
|
||||
'help' => pht('Port number to connect to.'),
|
||||
),
|
||||
));
|
||||
$unconsumed_argv = $args->getUnconsumedArgumentVector();
|
||||
|
||||
$pattern = array();
|
||||
$arguments = array();
|
||||
|
||||
|
@ -31,9 +45,15 @@ if ($credential_phid) {
|
|||
$arguments[] = $key->getKeyfileEnvelope();
|
||||
}
|
||||
|
||||
$port = $args->getArg('port');
|
||||
if ($port) {
|
||||
$pattern[] = '-p %d';
|
||||
$arguments[] = $port;
|
||||
}
|
||||
|
||||
$pattern[] = '--';
|
||||
|
||||
$passthru_args = array_slice($argv, 1);
|
||||
$passthru_args = $unconsumed_argv;
|
||||
foreach ($passthru_args as $passthru_arg) {
|
||||
$pattern[] = '%s';
|
||||
$arguments[] = $passthru_arg;
|
||||
|
|
Loading…
Reference in a new issue