package main import ( "cloudsave/pkg/tools/windows" _ "embed" "os" "github.com/getlantern/systray" ) const defaultDocumentRoot string = "C:\\ProgramData\\CloudSave" //go:embed res/icon.ico var icon []byte var ( updateChan chan struct{} ) func main() { updateChan = make(chan struct{}) go systray.Run(onReady, onExit) run(updateChan) } func fatal(message string, exitCode int) { windows.MessageBox(windows.NULL, message, "CloudSave", windows.MB_OK) os.Exit(exitCode) } func onReady() { systray.SetTitle("CloudSave") systray.SetTooltip("CloudSave") systray.SetIcon(icon) mReload := systray.AddMenuItem("Reload", "Reload the server data") mQuit := systray.AddMenuItem("Quit", "Quit the server") go func() { <-mQuit.ClickedCh os.Exit(0) }() go func() { for { <-mReload.ClickedCh updateChan <- struct{}{} } }() } func onExit() { // clean up here }