ee: редактор запускается через subprocess вместо pty invoke

- invoke оставлял на внешнем терминале ixon, и Ctrl+S/Ctrl+Q съедал драйвер
  терминала как XOFF/XON — до micro они не доходили
- код возврата ansible-vault теперь пробрасывается наружу
This commit is contained in:
av
2026-07-25 16:23:03 +03:00
parent 1b2bc61cff
commit 6d28d361e2
+10 -1
View File
@@ -112,7 +112,16 @@ def decrypt(ctx: Context, file: str) -> None:
@task(aliases=["ee"]) @task(aliases=["ee"])
def edit_encrypted(ctx: Context, path: str) -> None: def edit_encrypted(ctx: Context, path: str) -> None:
"""Редактировать vault-файл через ansible-vault edit (без расшифровки на диск)""" """Редактировать vault-файл через ansible-vault edit (без расшифровки на диск)"""
ctx.run(f"uv run ansible-vault edit {path}", pty=True) # Намеренно не через ctx.run: invoke заводит свой pty, а внешний терминал
# переводит лишь в cbreak — ixon остаётся включённым, и Ctrl+S/Ctrl+Q съедает
# драйвер терминала как XOFF/XON, до редактора они не доходят. subprocess
# отдаёт редактору настоящий tty, и его raw-режим гасит ixon сам.
result = subprocess.run(["uv", "run", "ansible-vault", "edit", path])
if result.returncode != 0:
raise Exit(
f"ansible-vault edit: код возврата {result.returncode}",
code=result.returncode,
)
# --- Синхронизация общих ролей с каноном ansible-roles --- # --- Синхронизация общих ролей с каноном ansible-roles ---