From b70064d1becf868f84d9639574e98f9990c8b05c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 27 Sep 2021 10:49:38 +0530 Subject: [PATCH] Use a default set of ssh options if the binary is not found --- kittens/ssh/completion.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/kittens/ssh/completion.py b/kittens/ssh/completion.py index 1c4cf2249..f74726deb 100644 --- a/kittens/ssh/completion.py +++ b/kittens/ssh/completion.py @@ -74,9 +74,20 @@ def known_hosts() -> Tuple[str, ...]: @run_once def ssh_options() -> Dict[str, str]: - stderr = subprocess.Popen(['ssh'], stderr=subprocess.PIPE).stderr - assert stderr is not None - raw = stderr.read().decode('utf-8') + try: + p = subprocess.run(['ssh'], stderr=subprocess.PIPE, encoding='utf-8') + raw = p.stderr or '' + except FileNotFoundError: + return { + '4': '', '6': '', 'A': '', 'a': '', 'C': '', 'f': '', 'G': '', 'g': '', 'K': '', 'k': '', + 'M': '', 'N': '', 'n': '', 'q': '', 's': '', 'T': '', 't': '', 'V': '', 'v': '', 'X': '', + 'x': '', 'Y': '', 'y': '', 'B': 'bind_interface', 'b': 'bind_address', 'c': 'cipher_spec', + 'D': '[bind_address:]port', 'E': 'log_file', 'e': 'escape_char', 'F': 'configfile', 'I': 'pkcs11', + 'i': 'identity_file', 'J': '[user@]host[:port]', 'L': 'address', 'l': 'login_name', 'm': 'mac_spec', + 'O': 'ctl_cmd', 'o': 'option', 'p': 'port', 'Q': 'query_option', 'R': 'address', + 'S': 'ctl_path', 'W': 'host:port', 'w': 'local_tun[:remote_tun]' + } + ans: Dict[str, str] = {} pos = 0 while True: