feat: windows desktop app complete

This commit is contained in:
Simon Ding
2025-04-29 14:11:43 +08:00
parent 33d82951c1
commit 22db6b15cf
12 changed files with 175 additions and 60 deletions

View File

@@ -2,20 +2,45 @@ package main
import "C"
import (
"os"
"polaris/cmd"
"polaris/db"
"polaris/log"
"polaris/server"
)
func main() {}
var srv *server.Server
var port int
//export Start
func Start() {
cmd.Start(true)
func Start() (C.int, *C.char) {
if srv != nil {
return C.int(port), nil
}
log.InitLogger(true)
log.Infof("------------------- Starting Polaris ---------------------")
dbClient, err := db.Open()
if err != nil {
log.Panicf("init db error: %v", err)
return C.int(0), C.CString(err.Error())
}
s := server.NewServer(dbClient)
if p, err := s.Start(""); err != nil {
return C.int(0), C.CString(err.Error())
} else {
port = p
srv = s
return C.int(p), C.CString("")
}
}
//export Stop
func Stop() {
log.Infof("stop polaris")
os.Exit(0)
if srv != nil {
srv.Stop()
}
srv = nil
}