all repos — searchix @ 9f241bff227608dd53a250d012116077dce6dab6

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

feat: automatically add/remove sources to/from index

Alan Pearce
commit

9f241bff227608dd53a250d012116077dce6dab6

parent

43fe431c3aff36d52a630ca670f9fc4ee161962f

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

changed files
M internal/importer/main.gointernal/importer/main.go
@@ -9,12 +9,18 @@ "path"
"searchix/internal/config" "searchix/internal/fetcher" "searchix/internal/index" + "slices" "strings" "github.com/pkg/errors" ) -func Start(cfg *config.Config, indexer *index.WriteIndex, replace bool) error { +func Start( + cfg *config.Config, + indexer *index.WriteIndex, + forceUpdate bool, + onlyUpdateSources *[]string, +) error { if len(cfg.Importer.Sources) == 0 { slog.Info("No sources enabled")
@@ -24,7 +30,15 @@
ctx, cancel := context.WithTimeout(context.Background(), cfg.Importer.Timeout.Duration) defer cancel() + forceUpdate = forceUpdate || (onlyUpdateSources != nil && len(*onlyUpdateSources) > 0) + for name, source := range cfg.Importer.Sources { + if len(*onlyUpdateSources) > 0 { + if !slices.Contains(*onlyUpdateSources, name) { + continue + } + } + logger := slog.With("name", name, "fetcher", source.Fetcher.String()) logger.Debug("starting fetcher")
@@ -54,7 +68,7 @@ continue
} logger.Info("importer fetch succeeded", "updated", updated) - if updated || replace { + if updated || forceUpdate { err = setRepoRevision(files.Revision, source) if err != nil { logger.Warn("could not set source repo revision", "error", err)