SimpleFileSync/Main.go
2023-05-03 08:56:24 -04:00

62 lines
1.2 KiB
Go

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
}