summaryrefslogtreecommitdiffstats
path: root/contrib/trivial_rebase.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/trivial_rebase.py')
-rwxr-xr-xcontrib/trivial_rebase.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/contrib/trivial_rebase.py b/contrib/trivial_rebase.py
index ed98f4498b..3e77c4c9cf 100755
--- a/contrib/trivial_rebase.py
+++ b/contrib/trivial_rebase.py
@@ -55,6 +55,9 @@ class TrivialRebase:
parser.add_argument("--server-port", dest="port", default='29418',
help="Port to connect to Gerrit's SSH daemon "
"[default: %(default)s]")
+ parser.add_argument("--ssh", default="ssh", help="SSH executable")
+ parser.add_argument("--ssh-port-flag", dest="ssh_port_flag", default="-p", help="SSH port flag")
+
args = parser.parse_known_args()[0]
if None in [args.changeUrl, args.project, args.commit, args.patchset]:
parser.error("Incomplete arguments")
@@ -68,6 +71,8 @@ class TrivialRebase:
self.private_key_path = args.private_key_path
self.server = args.server
self.port = args.port
+ self.ssh = args.ssh
+ self.ssh_port_flag = args.ssh_port_flag
class CheckCallError(OSError):
"""CheckCall() returned non-0."""
@@ -85,7 +90,7 @@ class TrivialRebase:
Works on python 2.4
"""
try:
- process = subprocess.Popen(command, cwd=cwd, stdout=subprocess.PIPE)
+ process = subprocess.Popen(command, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
std_out, std_err = process.communicate()
except OSError, e:
raise self.CheckCallError(command, cwd, e.errno, None)
@@ -95,7 +100,7 @@ class TrivialRebase:
def GsqlQuery(self, sql_query):
"""Runs a gerrit gsql query and returns the result"""
- gsql_cmd = ['ssh', '-p', self.port, self.server, 'gerrit', 'gsql',
+ gsql_cmd = [self.ssh, self.ssh_port_flag, self.port, self.server, 'gerrit', 'gsql',
'--format', 'JSON', '-c', sql_query]
try:
(gsql_out, _gsql_stderr) = self.CheckCall(gsql_cmd)
@@ -150,7 +155,7 @@ class TrivialRebase:
return patch_id_process.communicate()[0]
def SuExec(self, as_user, cmd):
- suexec_cmd = ['ssh', '-l', "Gerrit Code Review", '-p', self.port, self.server]
+ suexec_cmd = [self.ssh, '-l', "Gerrit Code Review", self.ssh_port_flag, self.port, self.server]
if self.private_key_path:
suexec_cmd += ['-i', self.private_key_path]
suexec_cmd += ['suexec', '--as', as_user, '--', cmd]
@@ -194,8 +199,8 @@ class TrivialRebase:
# commit message changed
comment_msg = ("\'--message=New patchset patch-id matches previous patchset"
", but commit message has changed.'")
- comment_cmd = ['ssh', '-p', self.port, self.server, 'gerrit', 'approve',
- '--project', self.project, comment_msg, self.commit]
+ comment_cmd = [self.ssh, self.ssh_port_flag, self.port, self.server, 'gerrit',
+ 'approve', '--project', self.project, comment_msg, self.commit]
self.CheckCall(comment_cmd)
return