generated from dave/wails-template
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
type AddonService struct {
|
|
Addons map[string]Addon
|
|
}
|
|
|
|
//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 (a *AddonService) GetAddon(name string) (addon Addon, err error) {
|
|
var ok bool
|
|
addon, ok = a.Addons[name]
|
|
if !ok {
|
|
return addon, fmt.Errorf("addon with name %s not found", name)
|
|
}
|
|
return
|
|
}
|
|
|
|
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) (hasBreakingChanges bool, err error) {
|
|
addon, err := a.GetAddon(name)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
release, err := addon.GetRemoteRelease()
|
|
if err != nil {
|
|
return
|
|
}
|
|
hasBreakingChanges, err = addon.Update(release)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return hasBreakingChanges, nil
|
|
}
|