From 554c840d4ea8e8cb232fa59d4972f825e6da600b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 22 Jul 2021 17:30:07 +0530 Subject: [PATCH] ssh kitten: exit with 255 for unknown arg to match ssh --- kittens/ssh/main.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/kittens/ssh/main.py b/kittens/ssh/main.py index 7bb8f1441..2a88d40ea 100644 --- a/kittens/ssh/main.py +++ b/kittens/ssh/main.py @@ -188,6 +188,9 @@ def parse_ssh_args(args: List[str]) -> Tuple[List[str], List[str], bool]: server_args.append(arg) continue if arg.startswith('-') and not expecting_option_val: + if arg == '--': + stop_option_processing = True + continue all_args = arg[1:] for i, arg in enumerate(all_args): arg = '-' + arg @@ -204,10 +207,9 @@ def parse_ssh_args(args: List[str]) -> Tuple[List[str], List[str], bool]: else: expecting_option_val = True break - if arg == '--': - stop_option_processing = True - continue - raise SystemExit('Unknown option: {}'.format(arg)) + print('unknown option -- {}'.format(arg), file=sys.stderr) + subprocess.Popen(['ssh']).wait() + raise SystemExit(255) continue if expecting_option_val: ssh_args.append(arg) @@ -267,6 +269,7 @@ def main(args: List[str]) -> NoReturn: hostname, remote_args = server_args[0], server_args[1:] if not remote_args: cmd.append('-t') + cmd.append('--') cmd.append(hostname) terminfo = subprocess.check_output(['infocmp', '-a']).decode('utf-8') f = get_posix_cmd if use_posix else get_python_cmd