diff options
author | Alan Pearce | 2025-03-20 13:08:25 +0100 |
---|---|---|
committer | Alan Pearce | 2025-03-20 13:12:54 +0100 |
commit | 2705e97ce1cf7d6a399c5f0175c36562fdef3352 (patch) | |
tree | 95c78a494471ff60ec87b9d64099c94ccec2f140 /internal/fetcher | |
parent | ff1e9539fca1f011cfd52d0309a373f211c3fd10 (diff) | |
download | searchix-2705e97ce1cf7d6a399c5f0175c36562fdef3352.tar.lz searchix-2705e97ce1cf7d6a399c5f0175c36562fdef3352.tar.zst searchix-2705e97ce1cf7d6a399c5f0175c36562fdef3352.zip |
feat: enable NUR package import
Diffstat (limited to 'internal/fetcher')
-rw-r--r-- | internal/fetcher/download.go | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/internal/fetcher/download.go b/internal/fetcher/download.go index 6c5bae8..6dc6d34 100644 --- a/internal/fetcher/download.go +++ b/internal/fetcher/download.go @@ -22,7 +22,7 @@ func NewDownloadFetcher( logger *log.Logger, ) (*DownloadFetcher, errors.E) { switch source.Importer { - case config.Options: + case config.Options, config.Packages: return &DownloadFetcher{ Source: source, Logger: logger, @@ -35,6 +35,7 @@ func NewDownloadFetcher( var files = map[string]string{ "revision": "revision", "options": "options.json", + "packages": "packages.json", } func (i *DownloadFetcher) FetchIfNeeded( @@ -43,7 +44,17 @@ func (i *DownloadFetcher) FetchIfNeeded( ) (*FetchedFiles, errors.E) { f := &FetchedFiles{} sourceUpdated := sourceMeta.Updated - for key, filename := range files { + + filesToFetch := make([]string, 2) + filesToFetch[0] = files["revision"] + switch i.Source.Importer { + case config.Packages: + filesToFetch[1] = files["packages"] + case config.Options: + filesToFetch[1] = files["options"] + } + + for _, filename := range filesToFetch { fetchURL, baseErr := url.JoinPath(i.Source.URL, filename) if baseErr != nil { return nil, errors.WithMessagef( @@ -68,13 +79,15 @@ func (i *DownloadFetcher) FetchIfNeeded( } sourceMeta.Updated = mtime - switch key { - case "revision": + switch filename { + case files["revision"]: f.Revision = body - case "options": + case files["options"]: f.Options = body + case files["packages"]: + f.Packages = body default: - return f, errors.Errorf("unknown file kind %s", key) + return f, errors.Errorf("unknown filename %s", filename) } } |