//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 escapeAppleScript(s string) string {
	s = strings.ReplaceAll(s, "\\", "\\\\")
	s = strings.ReplaceAll(s, "\"", "\\\"")
	return s
}
