mirror of
https://github.com/Flowseal/tg-ws-proxy.git
synced 2026-10-30 21:47:01 +03:00
[PR #768] [CLOSED] feat: автообновление через отдельные shell-скрипты на Windows, Linux и macOS #53
Reference in new issue
Block a user
📋 Pull Request Information
Original PR: https://github.com/Flowseal/tg-ws-proxy/pull/768
Author: @Overl1te
Created: 4/23/2026
Status: ❌ Closed
Base:
main← Head:feat/auto-update📝 Commits (1)
c47beabfeat: автообновление через отдельные shell-скрипты на Windows, Linux и macOS📊 Changes
8 files changed (+491 additions, -45 deletions)
View changed files
📝
linux.py(+37 -3)📝
macos.py(+102 -38)📝
ui/ctk_tray_ui.py(+18 -0)📝
utils/default_config.py(+1 -0)📝
utils/tray_common.py(+19 -1)📝
utils/update_check.py(+6 -0)➕
utils/updater.py(+271 -0)📝
windows.py(+37 -3)📄 Description
Добавлен механизм самообновления: приложение скачивает и заменяет текущий бинарник через отдельный скрипт PowerShell (.ps1) или Bash (.sh), обходя ограничение на замену запущенного исполняемого файла без отдельного updater-приложения.
utils/updater.py (новый): определение платформенных файлов, проверка прав на запись, генерация скриптов для Windows/Linux/macOS; на macOS — монтирование DMG, копирование .app с откатом при ошибке, снятие quarantine, перезапуск.
utils/update_check.py: кэширует assets релиза локально, чтобы при часовом rate limit они были доступны для отложенного обновления.
utils/default_config.py: auto_update = True по умолчанию.
utils/tray_common.py: maybe_notify_update теперь запускает автоустановку при auto_update=True и is_supported(), иначе показывает ручной диалог; добавлены колбэки on_update_available / on_exit.
windows.py / linux.py: _on_update_available добавляет пункт трея «Обновить до X», _on_do_update запускает обновление и корректный выход.
macos.py: переход на общий maybe_notify_update вместо ad-hoc логики; добавлен пункт меню обновления, переключатель автообновления и безопасный выход через главный поток с принудительным завершением через 3 секунды.
ui/ctk_tray_ui.py: чекбокс «Устанавливать обновления автоматически» в разделе Updates, виден только при is_supported().
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
[PR #768] [CLOSED] feat: автообновление через отдельные shell-скрипты на Windows, Linux и macOSto [PR #768] feat: автообновление через отдельные shell-скрипты на Windows, Linux и macOS[PR #768] feat: автообновление через отдельные shell-скрипты на Windows, Linux и macOSto [PR #768] [CLOSED] feat: автообновление через отдельные shell-скрипты на Windows, Linux и macOS