From d5c48ddb9454e6a3b7ad722f53c269444115b6fe Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Mar 2022 08:23:10 +0530 Subject: [PATCH] Allow inputting fingerprint check --- kittens/ask/main.py | 1 + setup.cfg | 2 +- shell-integration/ssh/askpass.py | 10 ++++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/kittens/ask/main.py b/kittens/ask/main.py index dc218c1d5..a55f0ff3f 100644 --- a/kittens/ask/main.py +++ b/kittens/ask/main.py @@ -154,6 +154,7 @@ class Password(Handler): self.line_edit = LineEdit(is_password=True) def initialize(self) -> None: + self.cmd.set_cursor_shape('beam') self.draw_screen() @Handler.atomic_update diff --git a/setup.cfg b/setup.cfg index 18a5a80d7..e6d65b049 100644 --- a/setup.cfg +++ b/setup.cfg @@ -14,7 +14,7 @@ combine_as_imports = True multi_line_output = 5 [mypy] -files = kitty,kittens,glfw,*.py,docs/conf.py +files = kitty,kittens,glfw,*.py,docs/conf.py,shell-integration/ssh/askpass.py no_implicit_optional = True sqlite_cache = True cache_fine_grained = True diff --git a/shell-integration/ssh/askpass.py b/shell-integration/ssh/askpass.py index 4abf070e8..2479319ea 100755 --- a/shell-integration/ssh/askpass.py +++ b/shell-integration/ssh/askpass.py @@ -10,11 +10,12 @@ from kitty.shm import SharedMemory msg = sys.argv[-1] prompt = os.environ.get('SSH_ASKPASS_PROMPT', '') -is_confirm = prompt == 'confirm' or 'continue connecting' in msg +is_confirm = prompt == 'confirm' +is_fingerprint_check = '(yes/no/[fingerprint])' in msg q = { 'message': msg, 'type': 'confirm' if is_confirm else 'get_line', - 'is_password': True, + 'is_password': not is_fingerprint_check, } data = json.dumps(q) @@ -35,5 +36,10 @@ with SharedMemory( response = json.loads(shm.read_data_with_size()) if is_confirm: response = 'yes' if response else 'no' +elif is_fingerprint_check: + if response.lower() in ('y', 'yes'): + response = 'yes' + if response.lower() in ('n', 'no'): + response = 'no' if response: print(response, flush=True)