diff options
Diffstat (limited to 'internal/config')
-rw-r--r-- | internal/config/config.go | 12 | ||||
-rw-r--r-- | internal/config/structs.go | 12 |
2 files changed, 24 insertions, 0 deletions
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) + } +} |