//go:build darwin package main import ( "fmt" "os/exec" "strings" "go.uber.org/zap" ) func showError(title, message string) { script := fmt.Sprintf(`display dialog "%s" buttons {"OK"} default button "OK" with title "%s"`, escapeAppleScript(message), escapeAppleScript(title)) if err := exec.Command("osascript", "-e", script).Run(); err != nil { dialogLogger().Warn("显示错误对话框失败", zap.Error(err)) } } func showAbout() { message := "Nex Gateway\n\nAI Gateway - 统一的大模型 API 网关\n\nhttps://github.com/nex/gateway" script := fmt.Sprintf(`display dialog "%s" buttons {"OK"} default button "OK" with title "关于 Nex Gateway"`, escapeAppleScript(message)) if err := exec.Command("osascript", "-e", script).Run(); err != nil { dialogLogger().Warn("显示关于对话框失败", zap.Error(err)) } } func escapeAppleScript(s string) string { s = strings.ReplaceAll(s, "\\", "\\\\") s = strings.ReplaceAll(s, "\"", "\\\"") return s }