Files
tia-love/internal/version/version.go
T
oxpoe 5450a89a80
CI / test (push) Failing after 38s
layout: ikuti mock SVG — kolom tengah dashboard, toolbar workspace, kolom Aksi Tab
- Beranda: kolom tengah CTA 'masuk workspace' (klikable), strip Disclaimer
  dan Info aplikasi (versi/repo/config); geometri satu sumber (homeGeom).
- Workspace: baris toolbar — pill Cari (klik atau '/' → cari-lompat daftar)
  + tombol [+ stack]/[konversi] klikable (sementara keduanya jalur konverter).
- Detail kontainer: kolom kanan 'Aksi Tab' (mock TAB ACTION) berisi aksi tab
  aktif yang bisa diklik; disembunyikan di layar sempit agar tab bar utuh.
- Footer: hint aksi diprioritaskan; status diagnostik dibuang bila tak muat.
- internal/version: versi build dipakai CLI & strip Info aplikasi.
- audio: Play/Status aman untuk Engine nil (Model zero-value di tes).
- Tes: 3 skenario E2E baru (CTA, cari toolbar, kolom aksi) + tes layout.
2026-10-16 03:16:32 +07:00

40 lines
722 B
Go

// Package version — string versi & build info (dipakai CLI dan TUI).
package version
import (
"runtime/debug"
"strings"
)
// String memakai build info VCS — tanpa ldflags.
func String() string {
info, ok := debug.ReadBuildInfo()
if !ok {
return "tia dev"
}
ver := info.Main.Version
if ver == "" || ver == "(devel)" || strings.HasPrefix(ver, "v0.0.0-") {
ver = "dev"
}
rev, dirty := "", false
for _, s := range info.Settings {
switch s.Key {
case "vcs.revision":
if len(s.Value) >= 7 {
rev = s.Value[:7]
}
case "vcs.modified":
dirty = s.Value == "true"
}
}
out := "tia " + ver
if rev != "" {
out += " (" + rev
if dirty {
out += "-dirty"
}
out += ")"
}
return out
}