all repos — searchix @ f0aab9c1174093efba3d796ce66f617473caf004

Search engine for NixOS, nix-darwin, home-manager and NUR users

refactor: avoid index range errors in download fetcher

Alan Pearce
commit

f0aab9c1174093efba3d796ce66f617473caf004

parent

eb67d4d7c7ef139d98d555edbfd91211608756e1

1 file changed, 11 insertions(+), 16 deletions(-)

changed files
M internal/fetcher/download.gointernal/fetcher/download.go
@@ -33,10 +33,11 @@ return nil, fault.Newf("unsupported importer type %s", source.Importer)
} } -var files = map[string]string{ - "revision": "revision", - "options": "options.json", - "packages": "packages.json", +const revisionFileName = "revision" + +var files = map[config.ImporterType]string{ + config.Options: "options.json", + config.Packages: "packages.json", } func (i *DownloadFetcher) FetchIfNeeded(
@@ -45,13 +46,9 @@ sourceMeta *meta.SourceMeta,
) (*FetchedFiles, error) { f := &FetchedFiles{} - 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"] + filesToFetch := []string{ + revisionFileName, + files[i.Source.Importer], } fetcher := http.NewFetcher(&http.Options{
@@ -72,8 +69,6 @@ basename,
), ) } - - i.Logger.Debug("preparing to fetch URL", "url", fetchURL, "target", target) body, err := fetcher.FetchFileIfNeeded(ctx, target, fetchURL) if err != nil {
@@ -89,11 +84,11 @@ }
sourceMeta.UpdatedAt = stat.ModTime() switch basename { - case files["revision"]: + case revisionFileName: f.Revision = body - case files["options"]: + case files[config.Options]: f.Options = body - case files["packages"]: + case files[config.Packages]: f.Packages = body default: return f, fault.Newf("unknown filename %s", basename)