From be389b35ce6364deb6533d6267545905d6fd8ba1 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Fri, 21 Jun 2024 15:35:23 +0200 Subject: refactor: use encoding/xml for OpenSearchDescription --- internal/config/config.go | 12 ++++++++++++ internal/config/structs.go | 12 ++++++++++++ 2 files changed, 24 insertions(+) (limited to 'internal/config') diff --git a/internal/config/config.go b/internal/config/config.go index 83ddd2c..14375d6 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -31,6 +31,18 @@ func (u *URL) UnmarshalText(text []byte) (err error) { return nil } +func (u *URL) JoinPath(elems ...string) *URL { + return &URL{u.URL.JoinPath(elems...)} +} + +func (u *URL) AddQuery(key, value string) *URL { + q := u.URL.Query() + q.Add(key, value) + u.RawQuery = q.Encode() + + return u +} + type Duration struct { time.Duration } diff --git a/internal/config/structs.go b/internal/config/structs.go index 6c6bc13..e6cf20b 100644 --- a/internal/config/structs.go +++ b/internal/config/structs.go @@ -4,6 +4,7 @@ package config // keep config structs here so that lll ignores the long lines (go doesn't support multi-line struct tags) import ( + "fmt" "log/slog" ) @@ -47,3 +48,14 @@ type Source struct { OutputPath string `comment:"(Fetcher=channel) Path under ./result symlink to folder containing {options,packages}.json."` Repo Repository `comment:"Used to generate declaration/definition links"` } + +func (source *Source) String() string { + switch source.Importer { + case Options: + return source.Name + " " + source.Importer.String() + case Packages: + return source.Name + default: + return fmt.Sprintf("Source(%s)", source.Name) + } +} -- cgit 1.4.1