From 84617ede5d688ff463849d1a8a1fdd6545bd2da4 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 11 Jan 2025 20:31:25 +0100 Subject: [PATCH] Refaator service from *Addon to Addon --- addonService.go | 25 +++++++++++-------------- main.go | 15 ++++++++------- settings.json | 13 +++++++++++++ 3 files changed, 32 insertions(+), 21 deletions(-) create mode 100644 settings.json diff --git a/addonService.go b/addonService.go index 4708756..3cfc811 100644 --- a/addonService.go +++ b/addonService.go @@ -3,7 +3,7 @@ package main import "fmt" type AddonService struct { - Addons map[string]*Addon + Addons map[string]Addon } //var addons = map[string]*Addon{ @@ -12,16 +12,13 @@ type AddonService struct { // "Dechickenator": NewAddon("Dechickenator", "https://git.site.quack-lab.dev/dave/wow_dechickenator"), //} -func NewAddonService() *AddonService { - return &AddonService{} -} - -func (a *AddonService) GetAddon(name string) (*Addon, error) { - addon, ok := a.Addons[name] +func (a *AddonService) GetAddon(name string) (addon Addon, err error) { + var ok bool + addon, ok = a.Addons[name] if !ok { - return nil, fmt.Errorf("addon with name %s not found", name) + return addon, fmt.Errorf("addon with name %s not found", name) } - return addon, nil + return } func (a *AddonService) GetRemoteVersion(name string) (string, error) { @@ -39,18 +36,18 @@ func (a *AddonService) GetLocalVersion(name string) (string, error) { return addon.GetLocalVersion() } -func (a *AddonService) UpdateAddon(name string) (*Addon, error) { - addon, err := a.GetAddon(name) +func (a *AddonService) UpdateAddon(name string) (addon Addon, err error) { + addon, err = a.GetAddon(name) if err != nil { - return nil, err + return } release, err := addon.GetRemoteRelease() if err != nil { - return nil, err + return } err = addon.Update(release) if err != nil { - return nil, err + return } return addon, nil } diff --git a/main.go b/main.go index cb0582d..288d42b 100644 --- a/main.go +++ b/main.go @@ -7,7 +7,6 @@ import ( "io" "log" "os" - "path/filepath" "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/options" @@ -35,8 +34,8 @@ var gamePath string var addonService *AddonService type Settings struct { - GamePath string `json:"gamePath"` - Addons map[string]*Addon `json:"addons"` + GamePath string `json:"gamePath"` + Addons map[string]Addon `json:"addons"` } func main() { @@ -49,12 +48,14 @@ func main() { settings := Settings{} err = json.NewDecoder(settingsFile).Decode(&settings) if err != nil { - Error.Printf("error decoding settings: %s", err) - return + Warning.Printf("error decoding settings: %s", err) + settings = Settings{} } + log.Printf("Loaded settings: %+v", settings) - addonService = NewAddonService() - gamePath = filepath.Join("C:\\", "Games", "WoWRuski") + addonService = &AddonService{} + addonService.Addons = settings.Addons + return app := NewApp() err = wails.Run(&options.App{ diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..0c45f82 --- /dev/null +++ b/settings.json @@ -0,0 +1,13 @@ +{ + "addons": { + "Channeler": { + "url": "https://git.site.quack-lab.dev/dave/wow_channeler" + }, + "Heimdall": { + "url": "https://git.site.quack-lab.dev/dave/wow-Heimdall" + }, + "Dechickenator": { + "url": "https://git.site.quack-lab.dev/dave/wow_dechickenator" + } + } +} \ No newline at end of file