Files
Loki/tools/gen-icon/main.go
T
Loki de6551a153 Rebaptise AJEAN en Loki (fork, lignée conservée)
- module github.com/R0m1k3/Loki, cmd/loki, internal/loki (package loki)
- LOKI_HOME, LOKI_MODEL_DIRS, LOKI_SERVICE, LOKI_DL_CONNS ; /etc/loki ;
  units loki-engine / loki-ui ; binaire et aide CLI
- updateRepo pointe sur R0m1k3/Loki (l'auto-update ne tirera plus les
  binaires AJEAN amont)

Conservé à l'identique : le domaine ajean.link (service de tunnel amont),
les littéraux de migration 0.7.x (migrate_07.go), RELEASE_NOTES.md et
LICENSE (historique et licence de l'amont).

go build/vet/test : verts.
2026-08-14 21:33:15 +00:00

40 lines
1.2 KiB
Go

// gen-icon écrit cmd/loki/icon.ico à partir de l'icône de marque dessinée dans
// internal/loki (sys_brand_icon.go), pour que l'icône du .exe soit toujours la
// même que le favicon de l'UI et que celle de la zone de notification.
//
// Lancé par `go generate ./cmd/loki`, AVANT goversioninfo qui embarque le .ico
// dans les ressources Windows.
package main
import (
"fmt"
"os"
"strings"
"github.com/R0m1k3/Loki/internal/loki"
)
func main() {
out := "icon.ico"
if len(os.Args) > 1 {
out = os.Args[1]
}
// Les tailles attendues par l'explorateur Windows, de la barre des tâches à
// l'aperçu en grandes icônes.
write(out, loki.BrandICO(16, 32, 48, 64, 128, 256))
// PNG 1024 pour le bundle macOS : la CI en tire le .icns via sips/iconutil.
// Elle partait auparavant du .ico, ce qui suppose que sips sache lire un ICO —
// et l'échec y est masqué par « || true », donc une app Mac sans icône passait
// inaperçue. Un PNG ne laisse aucune place au doute.
write(strings.TrimSuffix(out, ".ico")+".png", loki.BrandIconPNG(1024))
}
func write(path string, data []byte) {
if err := os.WriteFile(path, data, 0o644); err != nil {
fmt.Fprintln(os.Stderr, "gen-icon:", err)
os.Exit(1)
}
fmt.Println("OK ->", path)
}