all repos — searchix @ 778e1d774f574f45c179d0fecf0c1da9cc359b80

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

feat(importer): add --replace flag to overwrite existing index

Alan Pearce
commit

778e1d774f574f45c179d0fecf0c1da9cc359b80

parent

99d5507b223baa6c780707d32c7bbbb8611034f0

1 file changed, 17 insertions(+), 1 deletion(-)

changed files
M internal/search/indexer.gointernal/search/indexer.go
@@ -6,7 +6,9 @@ "context"
"encoding/gob" "log" "log/slog" + "os" "path" + "searchix/internal/file" "searchix/internal/options" "github.com/blevesearch/bleve/v2"
@@ -27,11 +29,25 @@ index bleve.Index
indexMapping *mapping.IndexMappingImpl } -func NewIndexer(dir string) (*WriteIndex, error) { +func NewIndexer(dir string, force bool) (*WriteIndex, error) { var err error bleve.SetLog(log.Default()) indexPath := path.Join(dir, indexFilename) + + exists, err := file.Exists(indexPath) + if err != nil { + return nil, errors.WithMessagef(err, "could not check if index exists at path %s", indexPath) + } + if exists { + if !force { + return nil, errors.Errorf("index file %s already exists (use --force to replace)", indexPath) + } + err := os.RemoveAll(indexPath) + if err != nil { + return nil, errors.WithMessagef(err, "could not remove index file %s", indexPath) + } + } indexMapping := bleve.NewIndexMapping() indexMapping.StoreDynamic = false