Audion TC Updater
Audion TC Updater
Содержание
- Окно
- Три файла без окна
- Какие сборки берутся
- ОБНОВЛЕНИЕ
- СБОРКА
- Лицензия
- Ключ GitHub
- Отпечатки вместо версий
- Прокси
- Настройки
Проверяет, обновляет и собирает с нуля релизные сборки Audion TC — снаружи, не заходя в каждую руками.
Окно
Start.exe открывает окно. Сверху — папка с релизами и переключатель секций ОБНОВЛЕНИЕ | СБОРКА, справа во всю высоту — журнал: на экране 16:9 первой кончается высота.
Рядом с переключателем секций — RU | EN: язык окна. По умолчанию окно и три файла без окна говорят по-английски, на каком бы языке ни была Windows. Кнопка меняет подписи, подсказки и язык, на котором пишут проверка, обновление и сборка; выбор запоминается в ._runtime\ui-lang.txt и держится до следующей смены. Уже напечатанные строки журнала остаются как были, а что пишут Windows и чужие программы, от выбора не зависит. Пока идёт работа, язык не переключить: на полпути это сбило бы отчёт.
При первом старте окно спрашивает, с чем работать на этой машине: папку с релизами, установщик и ключ GitHub. Обязательна только папка с релизами: без установщика подождёт секция СБОРКА, без ключа GitHub даёт 60 запросов в час. Установщик, который лежит внутри выбранной папки релизов, подставляется сам.
Пока идёт проверка, обновление или сборка, внизу бежит полоса и стоит строка: что именно идёт, сколько уже идёт и на каком шаге — «Идёт проверка · 0:04 · Опрашиваю источники…». Она обновляется четыре раза в секунду вместе с журналом, так что видно, что программа жива, а не встала.
Окно само начинает с проверки — она ничего не меняет. Другая папка с релизами — кнопка «Обзор» или путь в поле: он применяется по Enter или когда уходите из поля, и следующий старт откроется на нём же.
Три файла без окна
| Файл | Что делает | Что меняет |
|---|---|---|
Check-Releases.cmd | смотрит, что в сборках устарело | ничего — в сборки не пишет ни байта |
Update-Releases.cmd | показывает план, спрашивает и обновляет | программы в сборках, их кнопки, меню и атлас |
Build-Releases.cmd | показывает план, спрашивает и собирает с нуля все сборки из списка | сборка встаёт на место прежней, только если собралась целиком |
Запускаются двойным кликом и берут папки, выбранные при первом старте. Чтобы работать с другой папкой релизов, перетащите её на файл. Пока первого старта не было, файлы просят открыть Start.exe или перетащить папку.
Какие сборки берутся
Любая папка Audion TC… в папке релизов: Initial, Audion, Ultimate, Creator, Developer, Admin — сколько есть. Контейнер вида Audion TC Portable\Audion TC тоже находится. Сборкой считается папка, где лежит TOTALCMD64.EXE.
ОБНОВЛЕНИЕ
Проверка показывает таблицу: строки — программы, столбцы — сборки. В клетке — версия в сборке, версия у автора и галочка «обновить». Клик по программе отмечает всю строку, по сборке — весь столбец.
Под таблицей:
- актуально — какие программы свежие, по сборкам;
- версию у источника не узнать — сайт автора не называет номер, пока файл не
скачан (FastStone, HWiNFO, Sysinternals и ещё несколько).
Total Commander попадает в таблицу, если на ghisler.com вышел новее.
Пометка «эталон» значит: файл приезжает из установщика и при установке не качается. Обновление в релизе его освежит, но следующая сборка с нуля привезёт старый — обновите и установщик. fzf так больше не помечается: с 14.09.2026 установка сама качает его свежим.
Отчёт сохраняется таблицей в ._runtime\reports\. В конце проверка сама убеждается, что в сборках не изменился ни один файл, и пишет об этом.
Плагины Total Commander не проверяются: их архивы лежат на сайтах без номера версии.
«Обновить отмеченное» сначала спрашивает. Дальше для каждой сборки:
- если из неё сейчас что-то запущено — сборка пропускается;
- обновляются отмеченные программы, а если нужно — сам Total Commander;
- убираются прежние версии (
.bak); - пересобираются кнопки, меню, атлас и окно выбора программ;
- убирается машинное: кеш проверки, временные загрузки, кеш значков;
- проверяется, что обновилось на самом деле.
Обновление идёт скриптами самой сборки — теми же, что в её пульте.
СБОРКА
Сборка с нуля идёт тем же планом, что установка мастером: файл плана Setup\Scripts\Invoke-AudionInstall.ps1 берётся из установщика Audion Setup for Total Commander. Поэтому релиз не расходится с тем, что получает человек, поставивший Audion TC сам.
Установщик — отдельное поле с кнопкой «Обзор», версия — бейджем рядом с заголовком. Его спрашивает первый старт, а сменить можно здесь — хоть на мастер установщика, хоть на его раздачу; папка релизов от этого не меняется.
В секции — строка на каждую сборку: галочка, папка, сколько программ в наборе, язык меню и когда собрана текущая. Язык меню можно переставить перед сборкой.
Отмеченные сборки собираются по одной — так опрос источников укладывается в лимит GitHub. Для каждой:
- Total Commander скачивается с ghisler.com в черновик
_stage\<набор>-<время>\Audion TC в папке релизов;
- ставятся программы набора и все плагины, у которых есть источник; каждый плагин
записывается в Wincmd.ini;
- атлас и окно выбора программ пересобираются на языке меню;
- из черновика убирается машинное: временные загрузки, кеши, файл токена;
- встало всё — прежняя сборка уходит, новая занимает её место;
- что-то не встало — прежний релиз остаётся как был, черновик лежит в
_stage, а
в журнале и отчёте видно, чего не хватает.
Контейнер вокруг сборки — README.md, licenses и прочее у Audion TC Portable — не трогается. Initial собирается за несколько минут, Ultimate — полчаса и дольше. Отчёт — ._runtime\reports\build-*.md.
| Сборка | Набор | Папка | Меню |
|---|---|---|---|
| Initial | initial | Audion TC Portable\Audion TC | EN |
| Audion | audion | Audion TC Audion | RU |
| Ultimate | ultimate | Audion TC Ultimate | RU |
| Admin | admin | Audion TC Admin | RU |
| Creator | creator | Audion TC Creator | RU |
| Developer | programmer | Audion TC Developer | RU |
Admin, Creator и Developer — наборы по занятию: собираются ровно по своему списку, как их ставит мастер.
Лицензия
Над списком сборок — поле для WINCMD.KEY. Выбранный ключ ляжет в каждую отмеченную сборку рядом с TOTALCMD64.EXE. Ключ не запоминается: при следующем открытии окна поле снова пустое. Вопрос перед сборкой и отчёт называют файл ключа, а строка сборки, в которой ключ уже лежит, помечена «с ключом».
Сборка с ключом — личная: публиковать её нельзя.
Без окна — перетащите WINCMD.KEY на Build-Releases.cmd, можно вместе с папкой релизов.
Ключ GitHub
Без ключа GitHub даёт 60 запросов в час, а программ в сборках полсотни. Ключ лежит открытым текстом в config\api_key_github.txt — одной строкой, и больше в файле ничего нет.
Первый старт спрашивает ключ вместе с папками. Потом он стоит в окне рядом с папкой релизов: бейдж показывает, принял ли его GitHub, а кнопка «Ключ GitHub» открывает диалог — вставить новый ключ, проверить сохранённый или убрать его. Новый ключ сохраняется, только если GitHub его принял, а если GitHub не ответил — без проверки. Без окна ключ меняют прямо в файле.
В начале проверки, обновления и сборки журнал сообщает, принял ли GitHub ключ и сколько запросов в час осталось. Ключ, который GitHub не принял, дальше не передаётся, и опрос идёт без него. Принятый уходит процессам через окружение и в сборки не попадает. Файл ключа исключён из git.
Отпечатки вместо версий
У десятка программ версию с сайта не узнать — раньше они всегда сидели в списке «версию у источника не узнать без скачивания». Теперь загрузчик сборки снимает для них отпечаток — имя файла со ссылки, тег ночной сборки или ETag из запроса HEAD, — и кладёт его в Ware\State\app-fingerprints.json. Проверка сравнивает отпечаток источника с тем, что сборка сняла, когда качала: разошлись — программа в списке на обновление, совпали — актуальна. В строке отчёта видно, что именно сменилось: FSViewer84.zip → FSViewer85.zip. Файл ради этого не скачивается.
Серая зона остаётся для тех, у кого отпечатка ещё нет ни с одной стороны: сборка не качала эту программу сама или источник не ответил.
Прокси
Адрес всегда ваш: ни одного адреса нет ни в коде, ни в config — проект публичный. Порядок такой: адрес, заданный в окне, затем HTTPS_PROXY из окружения, затем системный прокси Windows — его выставляют v2rayN, Hiddify, Clash и корпоративные сети.
В окне прокси стоит рядом с ключом GitHub: бейдж говорит, свой прокси или системный, а кнопка «Прокси» открывает диалог — задать адрес, проверить сохранённый или убрать его. Проверка — стук в GitHub через этот адрес; он идёт в стороне от окна, поэтому окно не замирает. Адрес сохраняется и тогда, когда стук не прошёл: прокси мог ещё не подняться, а перенабирать адрес с паролем заново — удовольствие ниже среднего.
Адрес лежит в ._runtime\proxy.txt — одной строкой, вне git и вне публичного архива: в нём может быть логин с паролем. В журнал он не пишется никогда — ни целиком, ни хостом в чужом сообщении об ошибке; журнал называет только схему — http, https или socks5.
Проверке, обновлению и сборке адрес передаётся через окружение (HTTPS_PROXY, HTTP_PROXY, ALL_PROXY), как и ключ GitHub, и возвращается как было после прогона. curl и PowerShell 7 берут его сами; для собственных запросов ставится DefaultWebProxy. socks5 понимают curl и PowerShell 7, Windows PowerShell 5.1 — нет, и журнал об этом говорит.
Настройки
Ни в коде, ни в config нет папок какой-либо машины. Что выбрал первый старт, лежит в ._runtime\folders.json:
releasesRoot— папка с релизами;installerRoot— установщик.
Папка ._runtime не уходит ни в git, ни в публичный архив, поэтому там же лежат отчёты: в них названы эти папки. Смена папки или установщика в окне переписывает файл; несуществующая папка и установщик без плана не запоминаются. Удалите файл — и первый старт спросит снова. Папка, перетащенная на .cmd-файл, действует только на этот запуск.
config\settings.json — buildMask, маска папок сборок, по умолчанию Audion TC*.
config\builds.json — что собирает секция СБОРКА: набор, название, папка и язык меню по умолчанию.