Go: layout standard cmd/ + internal/ - tout le code dans internal/jean (package jean), cmd/jean = main() + ressources Windows (.syso/icone/versioninfo), ui/ demenage dans internal/jean/ui (go:embed inchange) ; racine GitHub epuree

This commit is contained in:
nathaninline committed 2026-07-22 10:53:14 +02:00
1 parent 79e8d322a9
commit e3fe63ca24
68 files changed
+75 -62

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
//go:build windows
package jean
// sys_proc_windows.go — au double-clic, on relance Jean en processus DÉTACHÉ, sans
// console. L'original (qui, lui, possède la console fraîche créée par Explorer)
// se termine aussitôt, fermant sa console. Le nouveau process n'a aucune fenêtre
// de console : il n'y a donc plus de « terminal noir » et plus rien à fermer qui
// couperait le serveur. Seuls restent le splash puis l'icône de la zone de
// notification.
import (
"os"
"os/exec"
"syscall"
)
func relaunchDetachedApp() {
const (
detachedProcess = 0x00000008
createNoWindow = 0x08000000
createNewProcGrp = 0x00000200
)
exe, err := os.Executable()
if err != nil {
_ = cmdApp(nil) // repli : on lance quand même en place
return
}
cmd := exec.Command(exe, "app")
cmd.SysProcAttr = &syscall.SysProcAttr{
HideWindow: true,
CreationFlags: detachedProcess | createNoWindow | createNewProcGrp,
}
if err := cmd.Start(); err != nil {
_ = cmdApp(nil)
return
}
os.Exit(0) // ferme l'original → sa console disparaît ; le détaché continue
}