fix(scripts): сборка UI через массив аргументов + UTF-8 BOM

- go build: -ldflags со пробелами передавались одним токеном и падали
  ("invalid value $ldflags for flag -ldflags"). Вместо этого собираем
  массив $goArgs и вызываем go через splatting - каждый аргумент отдельным
  токеном.
- Файл перекодирован в UTF-8 с BOM: PowerShell 5.1 без BOM читал .ps1 как
  ANSI (cp1251) и ломал парсинг кириллических строк.
- .gitignore: игнорировать companion-файлы публикации
  (ratatoskr-*.sha256 / ratatoskr-*.version).
This commit is contained in:
ki.sagidullin
2026-08-20 17:59:05 +05:00
parent 5e7fb58049
commit 0b76734652
2 changed files with 9 additions and 2 deletions

6
.gitignore vendored
View File

@@ -4,6 +4,12 @@
*.out *.out
ratatoskr ratatoskr
# Publish companions (scripts/build-publish-ui.ps1)
ratatoskr-*.exe.sha256
ratatoskr-*.exe.version
ratatoskr-*.sha256
ratatoskr-*.version
# Go build/test artifacts # Go build/test artifacts
/testbin/ /testbin/
*.test *.test

View File

@@ -1,4 +1,4 @@
<# <#
build-publish-ui.ps1 — локальная сборка Windows-бинаря с UI (Fyne) и публикация в Gitea Packages. build-publish-ui.ps1 — локальная сборка Windows-бинаря с UI (Fyne) и публикация в Gitea Packages.
Почему локально: Fyne-окно требует cgo + C-компилятор (MinGW/gcc), которых нет в CI. Почему локально: Fyne-окно требует cgo + C-компилятор (MinGW/gcc), которых нет в CI.
@@ -70,7 +70,8 @@ $env:CGO_ENABLED = "1"
$out = Join-Path $RepoRoot $Filename $out = Join-Path $RepoRoot $Filename
$ldflags = "-s -w -X main.version=${Version} -X main.updateToken=${updateToken}" $ldflags = "-s -w -X main.version=${Version} -X main.updateToken=${updateToken}"
Write-Host "[build] go build -ldflags=... -o $Filename" Write-Host "[build] go build -ldflags=... -o $Filename"
go build -ldflags=$ldflags -o $out ./cmd/ratatoskr/ $goArgs = @("build", "-ldflags=$ldflags", "-o", $out, "./cmd/ratatoskr/")
go $goArgs
if ($LASTEXITCODE -ne 0) { Write-Error "go build завершился с кодом $LASTEXITCODE" } if ($LASTEXITCODE -ne 0) { Write-Error "go build завершился с кодом $LASTEXITCODE" }
# --- 4. Companion-файлы (.version, .sha256) --- # --- 4. Companion-файлы (.version, .sha256) ---