package main import ( "crypto/tls" "fmt" "git.nevets.tech/Steven/ezconf" "github.com/getlantern/systray" "os" "time" ) var Config *ezconf.Configuration var Connection *tls.Conn func main() { Config = ezconf.NewConfiguration("./config.ini") Connection = New(Config.GetAsString("General.server"), Config.GetAsInt("General.port")) systray.Run(onReady, onExit) } func onReady() { systray.SetIcon(getIcon("assets/icon.ico")) systray.SetTooltip("SimpleFileSync") itemOne := systray.AddMenuItem("Item-1", "Highlighted Item 1") systray.AddSeparator() sync := systray.AddMenuItem("Sync", "Trigger Sync Now") systray.AddSeparator() quit := systray.AddMenuItem("Quit", "Quit") go func() { for { select { case <-itemOne.ClickedCh: if itemOne.Checked() { itemOne.Uncheck() } else { itemOne.Check() } case <-sync.ClickedCh: sync.SetTitle("Syncing...") time.Sleep(1000) sync.SetTitle("Last sync at " + time.Now().Format(time.TimeOnly)) case <-quit.ClickedCh: systray.Quit() } } }() } func onExit() { } func getIcon(location string) []byte { bytes, err := os.ReadFile(location) if err != nil { fmt.Print(err) } return bytes }