zapret-kvn/xray_fluent/updates/installer/launch.py
loop-uh ced48cb34c
Some checks failed
Windows project source guards / test (push) Failing after 25s
Установщик обновления — на общем ядре zapret_update, том же, что у Zapret 2 GUI
Замена файлов, порядок шагов, проверка запуска и откат теперь в общем
ядре (байт-в-байт копия). Своё у Zapret KVN — только прослойка runner:
план прежнего вида (его пишет ещё прежняя версия), журнал update.log,
хвост startup.log упавшего запуска и сообщение об ошибке. Журнал замены
теперь пишется на диск: замену, оборванную выключением, можно откатить.
Замок окна обновления — общая переменная ZAPRET_UPDATE_HOLD.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:54:26 +03:00

26 lines
892 B
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Запуск установщика из работающего приложения."""
from __future__ import annotations
import subprocess
from zapret_update import processes
from . import APPLY_UPDATE_FLAG
from .plan import PLAN_FILE_NAME, InstallPlan
def launch_installer(plan: InstallPlan) -> subprocess.Popen:
"""Запустить новую сборку в режиме установки.
Приложение выходит не сразу, а когда установщик создаст
``plan.ready_marker``: если он не поднялся, закрываться незачем.
"""
plan_path = plan.work_dir / PLAN_FILE_NAME
plan.ready_marker.unlink(missing_ok=True)
plan.save(plan_path)
return processes.start_detached(
[str(plan.installer_exe), APPLY_UPDATE_FLAG, str(plan_path)],
cwd=plan.source_dir,
)