deps: ruff обновлён до 0.16, код приведён к новому набору правил
- в 0.16 расширился набор правил по умолчанию: 29 срабатываний там, где 0.15 давал "All checks passed" - subprocess.run без явного check (PLW1510) — проставлен check=False там, где код и так разбирает returncode сам - слепые except Exception в оркестраторе бэкапов и скриптах помечены noqa: BLE001 с объяснением, почему перехват намеренно широкий - EXE001 и TRY004 отключены в pyproject: бит исполняемости в репозитории ничего не решает, а ValueError при разборе config.toml — про содержимое конфига, а не про тип аргумента - ruff format в 0.16 форматирует python внутри markdown, из-за чего переформатирован пример в docs/drafts/gitea-runner-on-demand.md
This commit is contained in:
@@ -129,7 +129,7 @@ def edit_encrypted(ctx: Context, path: str) -> None:
|
||||
# переводит лишь в cbreak — ixon остаётся включённым, и Ctrl+S/Ctrl+Q съедает
|
||||
# драйвер терминала как XOFF/XON, до редактора они не доходят. subprocess
|
||||
# отдаёт редактору настоящий tty, и его raw-режим гасит ixon сам.
|
||||
result = subprocess.run(["uv", "run", "ansible-vault", "edit", path])
|
||||
result = subprocess.run(["uv", "run", "ansible-vault", "edit", path], check=False)
|
||||
if result.returncode != 0:
|
||||
raise Exit(
|
||||
f"ansible-vault edit: код возврата {result.returncode}",
|
||||
@@ -173,7 +173,10 @@ def roles_status(ctx: Context) -> None:
|
||||
print(f"{role}: missing in shared")
|
||||
drift = True
|
||||
elif (
|
||||
subprocess.run(["diff", "-rq", f"roles/{role}", str(canon)]).returncode != 0
|
||||
subprocess.run(
|
||||
["diff", "-rq", f"roles/{role}", str(canon)], check=False
|
||||
).returncode
|
||||
!= 0
|
||||
):
|
||||
print(f"{role}: differs")
|
||||
drift = True
|
||||
@@ -206,11 +209,14 @@ def roles_push(ctx: Context) -> None:
|
||||
raise Exit(f"Локальной роли нет: {local}", code=1)
|
||||
differs = (
|
||||
canon.is_dir()
|
||||
and subprocess.run(["diff", "-rq", str(local), str(canon)]).returncode != 0
|
||||
and subprocess.run(
|
||||
["diff", "-rq", str(local), str(canon)], check=False
|
||||
).returncode
|
||||
!= 0
|
||||
)
|
||||
if differs:
|
||||
# Защита от затирания более свежего канона устаревшей копией.
|
||||
subprocess.run(["diff", "-r", str(canon), str(local)])
|
||||
subprocess.run(["diff", "-r", str(canon), str(local)], check=False)
|
||||
answer = input(
|
||||
f"Канон '{role}' отличается. Перезаписать его копией из этого репо? [y/N] "
|
||||
)
|
||||
@@ -252,6 +258,7 @@ def login_as_app(ctx: Context, app: str) -> None:
|
||||
subprocess.run(
|
||||
f"""ssh {_remote_user()}@{_remote_host()} -t 'sudo -iu {app} bash -c "cd {app_dir} && exec bash -il"'""",
|
||||
shell=True,
|
||||
check=False,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user