Обновление программы
Finam Terminal сам следит за выходом новых версий и обновляется в один шаг: скачивает новый файл программы, проверяет его и перезапускается. Заходить на GitHub и вспоминать команду установки не нужно.
Как обновиться прямо сейчас
- Нажмите U на основном экране. В русской раскладке — Г.
- В открывшемся окне выберите Обновить и перезапустить. Если установлена последняя версия, окно не откроется, а в статус-баре появится сообщение «Установлена последняя версия».
- Дождитесь перезапуска. В шапке появится новый номер версии.
Как работает проверка
Раз в сутки программа в фоне спрашивает у GitHub, какая версия сейчас последняя.
- Проверка идёт в фоне и не задерживает ни запуск, ни работу терминала.
- Чаще одного раза в сутки запросы не отправляются: результат последней проверки хранится в файле, и повторный запуск в тот же день сети не касается.
- Нет сети или GitHub недоступен — терминал работает дальше, а в журнал
finam-terminal.logпишется строка[WARN] Update check failed: …. Окон с ошибками не появляется.
Значок ⚡ в шапке
Когда доступна новая версия, в шапке рядом с номером установленной версии загорается жёлтый значок с номером доступной:
Finam Terminal v0.14.0 ⚡ v0.15.0Значок — только уведомление. Он ничего не требует нажимать, и всплывающих окон поверх торгового интерфейса не появляется, даже если новая версия вышла прямо во время работы. Обновиться терминал предложит при следующем запуске.
Диалог при запуске
Если на момент запуска о новой версии уже известно, до основного интерфейса появится окно:
⚡ Доступна новая версия Finam Terminal
Установлена: v0.14.0
Актуальная: v0.15.0
[ Обновить и перезапустить ] [ Продолжить ]| Кнопка | Что произойдёт |
|---|---|
| Обновить и перезапустить | Терминал скачает и установит новую версию, затем перезапустится |
| Продолжить | Обычный запуск. Это выбор по умолчанию, его же даёт клавиша Esc |
После отказа диалог в этом сеансе больше не появится — останется значок ⚡ в шапке. Обновиться, не дожидаясь следующего запуска, можно клавишей U. При следующем запуске предложение повторится.
Что происходит при обновлении
- Терминал запрашивает у GitHub сведения о последнем релизе.
- Скачивает файл для текущей операционной системы рядом с файлом программы — в консоли идёт полоса прогресса.
- Сверяет контрольную сумму SHA256 скачанного файла с опубликованной в релизе. Сумма не совпала — файл удаляется, установленная версия остаётся нетронутой.
- Заменяет файл программы новым.
- Перезапускает программу. В шапке видна новая версия.
Ошибка на любом шаге — нет сети, обрыв связи, несовпадение контрольной суммы, нет прав на запись — выводит сообщение, после чего терминал продолжает работу в текущей версии. Торговле обновление не мешает.
Если нет прав на запись
Программа установлена в системный каталог, например /usr/local/bin, и запущена без нужных прав — заменить файл она не сможет. В сообщении об ошибке будет готовая команда ручного обновления.
Ручное обновление
Обновиться можно тем же скриптом установки, что и при первой установке.
macOS / Linux / WSL:
curl -fsSL https://fcli.ru/install.sh | bashWindows PowerShell:
irm https://fcli.ru/install.ps1 | iexСпособ пригодится, когда автообновление недоступно: нет прав на запись в каталог установки или для платформы нет готовой сборки — под Linux ARM64 и Windows ARM64 сборки в релизы не выкладываются, программу нужно собрать из исходников.
Docker-образ обновляется отдельно: docker pull, затем пересоздание контейнера — порядок описан в разделе Установка.
Примечания
- Результат проверки хранится в файле
update.jsonрядом с токеном:~/.finam-cli/update.jsonна macOS и Linux,%USERPROFILE%\.finam-cli\update.jsonна Windows. Внутри — время последней проверки, номер последней версии и ссылка на страницу релиза - Файл
update.jsonможно удалить: терминал выполнит проверку заново при следующем запуске. Испорченный файл считается отсутствующим - В сборках из исходников (
go run main.go,go build) и в Docker-образе версия отображается какdev: проверки не выполняются, запросов в сеть нет,update.jsonне создаётся, ни диалога, ни значка ⚡ не появляется - Скрипт установки ставит только последний релиз. Предыдущие версии — на странице релизов
- Что изменилось в каждой версии, перечислено на странице «Что нового»