mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
- Jean.app publie par la CI (zip par archi) : ouverture depuis le Finder -> mode application, comme le double-clic sur jean.exe sous Windows - icone dans la barre de menus macOS (systray/Cocoa) avec Ouvrir/Quitter, bundle marque LSUIElement (pas d'icone Dock) - builds darwin deplacees sur un runner macOS (CGO requis pour Cocoa) - signature ad-hoc du bundle + icone .icns
37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
//go:build darwin
|
|
|
|
package jean
|
|
|
|
// sys_console_darwin.go — détection du lancement « par clic » sous macOS.
|
|
//
|
|
// Sur macOS il n'y a pas d'équivalent d'AttachConsole : un binaire lancé depuis
|
|
// le Finder hérite quand même de descripteurs stdout/stderr (vers les logs
|
|
// système). Le signal fiable, c'est l'emplacement de l'exécutable : la release
|
|
// publie un bundle Jean.app dont le binaire vit dans
|
|
// Jean.app/Contents/MacOS/jean. Si on tourne depuis là, c'est un double-clic
|
|
// dans le Finder → expérience « application » (UI web + navigateur), exactement
|
|
// comme le double-clic sur jean.exe sous Windows.
|
|
//
|
|
// Le même binaire copié dans /usr/local/bin garde évidemment le comportement CLI.
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func setupConsole() bool {
|
|
exe, err := os.Executable()
|
|
if err != nil {
|
|
return true
|
|
}
|
|
if p, err := filepath.EvalSymlinks(exe); err == nil {
|
|
exe = p
|
|
}
|
|
// .../Jean.app/Contents/MacOS/jean
|
|
if strings.HasSuffix(filepath.Dir(exe), "/Contents/MacOS") {
|
|
return false
|
|
}
|
|
return true
|
|
}
|