62 lines
1.2 KiB
Go
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
|
|
}
|