feat: secure password/passphrase input via getpass; interactive SSH auth menu (key/passphrase/password/temp-key); fix missing do_transfer call
This commit is contained in:
@@ -112,6 +112,19 @@ def prompt(text, default=None):
|
||||
sys.exit(130)
|
||||
|
||||
|
||||
def prompt_password(text):
|
||||
"""Скрытый ввод пароля/passphrase. В pipe — обычный prompt с предупреждением."""
|
||||
import getpass
|
||||
try:
|
||||
return getpass.getpass(f"{yellow('❯')} {text} ")
|
||||
except EOFError:
|
||||
print(f"{yellow('⚠')} Ввод пароля в pipe не поддерживается скрытым режимом. Используем обычный ввод.")
|
||||
return prompt(text)
|
||||
except KeyboardInterrupt:
|
||||
print(f"\n{yellow('⚠')} Прервано пользователем (Ctrl+C)")
|
||||
sys.exit(130)
|
||||
|
||||
|
||||
def confirm(text, default="y"):
|
||||
"""Да/нет с обработкой EOF. В pipe — возвращает default."""
|
||||
yn = "Y/n" if default.lower() == "y" else "y/N"
|
||||
|
||||
Reference in New Issue
Block a user