AudionAudion

Audion TC Updater

README_RU.md

Audion TC Updater

English

Содержание

Проверяет, обновляет и собирает с нуля релизные сборки 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 не проверяются: их архивы лежат на сайтах без номера версии.

«Обновить отмеченное» сначала спрашивает. Дальше для каждой сборки:

  1. если из неё сейчас что-то запущено — сборка пропускается;
  2. обновляются отмеченные программы, а если нужно — сам Total Commander;
  3. убираются прежние версии (.bak);
  4. пересобираются кнопки, меню, атлас и окно выбора программ;
  5. убирается машинное: кеш проверки, временные загрузки, кеш значков;
  6. проверяется, что обновилось на самом деле.

Обновление идёт скриптами самой сборки — теми же, что в её пульте.

СБОРКА

Сборка с нуля идёт тем же планом, что установка мастером: файл плана Setup\Scripts\Invoke-AudionInstall.ps1 берётся из установщика Audion Setup for Total Commander. Поэтому релиз не расходится с тем, что получает человек, поставивший Audion TC сам.

Установщик — отдельное поле с кнопкой «Обзор», версия — бейджем рядом с заголовком. Его спрашивает первый старт, а сменить можно здесь — хоть на мастер установщика, хоть на его раздачу; папка релизов от этого не меняется.

В секции — строка на каждую сборку: галочка, папка, сколько программ в наборе, язык меню и когда собрана текущая. Язык меню можно переставить перед сборкой.

Отмеченные сборки собираются по одной — так опрос источников укладывается в лимит GitHub. Для каждой:

  1. Total Commander скачивается с ghisler.com в черновик

_stage\<набор>-<время>\Audion TC в папке релизов;

  1. ставятся программы набора и все плагины, у которых есть источник; каждый плагин

записывается в Wincmd.ini;

  1. атлас и окно выбора программ пересобираются на языке меню;
  2. из черновика убирается машинное: временные загрузки, кеши, файл токена;
  3. встало всё — прежняя сборка уходит, новая занимает её место;
  4. что-то не встало — прежний релиз остаётся как был, черновик лежит в _stage, а

в журнале и отчёте видно, чего не хватает.

Контейнер вокруг сборки — README.md, licenses и прочее у Audion TC Portable — не трогается. Initial собирается за несколько минут, Ultimate — полчаса и дольше. Отчёт — ._runtime\reports\build-*.md.

СборкаНаборПапкаМеню
InitialinitialAudion TC Portable\Audion TCEN
AudionaudionAudion TC AudionRU
UltimateultimateAudion TC UltimateRU
AdminadminAudion TC AdminRU
CreatorcreatorAudion TC CreatorRU
DeveloperprogrammerAudion TC DeveloperRU

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:

Папка ._runtime не уходит ни в git, ни в публичный архив, поэтому там же лежат отчёты: в них названы эти папки. Смена папки или установщика в окне переписывает файл; несуществующая папка и установщик без плана не запоминаются. Удалите файл — и первый старт спросит снова. Папка, перетащенная на .cmd-файл, действует только на этот запуск.

config\settings.jsonbuildMask, маска папок сборок, по умолчанию Audion TC*.

config\builds.json — что собирает секция СБОРКА: набор, название, папка и язык меню по умолчанию.

Все проекты