7c653a2490
bj собирает версии своих компонентов и внешних систем (в фоне, кэш 10 минут, прогрев при старте): ядро и модули bj (components.json или «-version»), экспортёр ARQA (служба bj-quikexport, /version), криптосервис (Health), «Валидата CSP» (zpki1utl), Java, ИШ НРД (deps.json + сайт НРД), МНП QUIK (VersionInfo), DEPO (OD_DATA_VERSION), PostgreSQL, ОС. «Настройка → Обзор» — таблица «Версии систем» с кнопкой «Обновить сведения»; в разделах БД, Fancy, QUIK МНП, Экспорт QUIK, Криптография, НРД, ЛК, НПР и Обновления — строка с версией. В таблице обновлений у компонентов, выложенных вручную, вместо «неизвестна» — версия самого компонента. bj-component-install: -version. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
50 lines
2.4 KiB
Go
50 lines
2.4 KiB
Go
// Command bj-quikexport — служба модуля «Экспорт биржевой информации» (modules/quikexport):
|
|
// управление ARQA quikexport, обновляется независимо от ядра bj.
|
|
//
|
|
// Слушает только локальный адрес: раздел настроек показывает bj-server, который проверяет вход,
|
|
// права и лицензию и передаёт запросы со служебным ключом. Привилегированные операции
|
|
// (установка файлов в каталог экспортёра, служба, база) идут через root-воркер bj-keymedia-worker.
|
|
//
|
|
// bj-quikexport [-addr 127.0.0.1:8084] [-store /var/lib/bj/.bj/quik-export/settings.json]
|
|
// [-setup /var/lib/bj/.bj/setup.json] [-key /var/lib/bj/.bj/module.key]
|
|
// bj-quikexport -version
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
"time"
|
|
|
|
"git.zetit.ru/zuevav/Bridge-and-Join-s/modules/quikexport"
|
|
)
|
|
|
|
// version — версия модуля (go build -ldflags "-X main.version=…").
|
|
var version = "0.1.0"
|
|
|
|
func main() {
|
|
addr := flag.String("addr", "127.0.0.1:8084", "адрес службы (только локальный)")
|
|
store := flag.String("store", "/var/lib/bj/.bj/quik-export/settings.json", "настройки модуля")
|
|
setup := flag.String("setup", "/var/lib/bj/.bj/setup.json", "настройки bj (перенос раздела quik_export при первом запуске)")
|
|
key := flag.String("key", "/var/lib/bj/.bj/module.key", "служебный ключ модулей (создаёт bj-server)")
|
|
showVersion := flag.Bool("version", false, "показать версию")
|
|
flag.Parse()
|
|
if *showVersion {
|
|
fmt.Println("bj-quikexport", version)
|
|
return
|
|
}
|
|
srv, err := quikexport.New(quikexport.Config{StorePath: *store, SetupPath: *setup, KeyPath: *key, Version: version})
|
|
if err != nil {
|
|
log.Fatalf("bj-quikexport: %v", err)
|
|
}
|
|
log.Printf("bj-quikexport %s: слушаю %s", version, *addr)
|
|
// WriteTimeout не задаём: применение настроек ждёт root-воркер до нескольких минут.
|
|
hs := &http.Server{Addr: *addr, Handler: srv.Handler(), ReadHeaderTimeout: 10 * time.Second}
|
|
if err := hs.ListenAndServe(); err != nil {
|
|
log.Printf("bj-quikexport: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|