Skip to content

Commit 452d90b

Browse files
committed
handle login cancelation
1 parent dbcbcc1 commit 452d90b

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/meshcore_cli/meshcore_cli.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -976,8 +976,12 @@ async def process_contact_chat_line(mc, contact, line):
976976
password=f.readline().strip()
977977

978978
if password == "":
979-
sess = PromptSession("Password: ", is_password=True)
980-
password = await sess.prompt_async()
979+
try:
980+
sess = PromptSession("Password: ", is_password=True)
981+
password = await sess.prompt_async()
982+
except EOFError:
983+
logger.info("Canceled")
984+
return True
981985

982986
if password_file != "":
983987
with open(password_file, "w", encoding="utf-8") as f :
@@ -1990,7 +1994,12 @@ async def next_cmd(mc, cmds, json_output=False):
19901994
else:
19911995
print(f"Unknown contact {cmds[1]}")
19921996
else:
1993-
res = await mc.commands.send_login(contact, cmds[2])
1997+
password = cmds[2]
1998+
if password == "$":
1999+
sess = PromptSession("Password: ", is_password=True)
2000+
password = await sess.prompt_async()
2001+
2002+
res = await mc.commands.send_login(contact, password)
19942003
logger.debug(res)
19952004
if res.type == EventType.ERROR:
19962005
if json_output :
@@ -2572,6 +2581,9 @@ async def next_cmd(mc, cmds, json_output=False):
25722581
except IndexError:
25732582
logger.error("Error in parameters, returning")
25742583
return None
2584+
except EOFError:
2585+
logger.error("Cancelled")
2586+
return None
25752587

25762588
async def process_cmds (mc, args, json_output=False) :
25772589
cmds = args

0 commit comments

Comments
 (0)