generated from dave/wails-template
Implement an addonservice
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type AddonService struct {
|
||||
Addons []*Addon
|
||||
Addons map[string]*Addon
|
||||
}
|
||||
|
||||
var addons = []*Addon{
|
||||
NewAddon("Channeler", "https://git.site.quack-lab.dev/dave/wow_channeler"),
|
||||
NewAddon("Heimdall", "https://git.site.quack-lab.dev/dave/wow-Heimdall"),
|
||||
NewAddon("Dechickenator", "https://git.site.quack-lab.dev/dave/wow_dechickenator"),
|
||||
var addons = map[string]*Addon{
|
||||
"Channeler": NewAddon("Channeler", "https://git.site.quack-lab.dev/dave/wow_channeler"),
|
||||
"Heimdall": NewAddon("Heimdall", "https://git.site.quack-lab.dev/dave/wow-Heimdall"),
|
||||
"Dechickenator": NewAddon("Dechickenator", "https://git.site.quack-lab.dev/dave/wow_dechickenator"),
|
||||
}
|
||||
|
||||
func NewAddonService() *AddonService {
|
||||
@@ -15,3 +17,42 @@ func NewAddonService() *AddonService {
|
||||
Addons: addons,
|
||||
}
|
||||
}
|
||||
|
||||
func (a *AddonService) GetAddon(name string) (*Addon, error) {
|
||||
addon, ok := a.Addons[name]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("addon with name %s not found", name)
|
||||
}
|
||||
return addon, nil
|
||||
}
|
||||
|
||||
func (a *AddonService) GetRemoteVersion(name string) (string, error) {
|
||||
addon, err := a.GetAddon(name)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return addon.GetRemoteVersion()
|
||||
}
|
||||
func (a *AddonService) GetLocalVersion(name string) (string, error) {
|
||||
addon, err := a.GetAddon(name)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return addon.GetLocalVersion()
|
||||
}
|
||||
|
||||
func (a *AddonService) UpdateAddon(name string) (*Addon, error) {
|
||||
addon, err := a.GetAddon(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
release, err := addon.GetRemoteRelease()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = addon.Update(release)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return addon, nil
|
||||
}
|
||||
|
22
main.go
22
main.go
@@ -36,28 +36,6 @@ var addonService *AddonService
|
||||
func main() {
|
||||
addonService = NewAddonService()
|
||||
gamePath = filepath.Join("C:\\", "Games", "WoWRuski")
|
||||
for _, addon := range addonService.Addons {
|
||||
localVersion, err := addon.GetLocalVersion()
|
||||
if err != nil {
|
||||
Error.Printf("error getting local version: %s", err)
|
||||
continue
|
||||
}
|
||||
log.Printf("%#v", localVersion)
|
||||
remoteVersion, err := addon.GetRemoteVersion()
|
||||
if err != nil {
|
||||
Error.Printf("error getting remote version: %s", err)
|
||||
continue
|
||||
}
|
||||
log.Printf("%#v", remoteVersion)
|
||||
body, err := json.Marshal(addon)
|
||||
if err != nil {
|
||||
Error.Printf("error marshalling addon: %s", err)
|
||||
continue
|
||||
}
|
||||
log.Printf("%s", string(body))
|
||||
}
|
||||
|
||||
return
|
||||
app := NewApp()
|
||||
|
||||
err := wails.Run(&options.App{
|
||||
|
Reference in New Issue
Block a user