package main import ( "embed" "fmt" "log" "net/url" "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/assetserver" ) //go:embed all:frontend/dist var assets embed.FS type Addon struct { Name string URL *url.URL } func NewAddon(name, aurl string) *Addon { a := &Addon{Name: name} var err error a.URL, err = url.Parse(aurl) if err != nil { fmt.Errorf("invalid url: %s", aurl) return nil } return a } var addons = []*Addon{ NewAddon("Channeler", "https://git.site.quack-lab.dev/dave/wow_channeler"), } func (a *Addon) GetToc() *url.URL { return a.URL.JoinPath(a.Name + ".toc") } func main() { for _, addon := range addons { log.Printf("%#v", addon.GetToc()) } return // Create an instance of the app structure app := NewApp() // Create application with options err := wails.Run(&options.App{ Title: "wails-template", Width: 1024, Height: 768, AssetServer: &assetserver.Options{ Assets: assets, }, BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, OnStartup: app.startup, Bind: []interface{}{ app, }, }) if err != nil { println("Error:", err.Error()) } }