all repos — searchix @ 5f74928b831c3a82cf343d397929a08374d3beeb

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

feat: force-recreate index when schema version updated

Alan Pearce
commit

5f74928b831c3a82cf343d397929a08374d3beeb

parent

2fcbebf4ce05c2c02b0c39cfa2236ef0ea0f9870

1 file changed, 10 insertions(+), 3 deletions(-)

changed files
M internal/index/meta/meta.gointernal/index/meta/meta.go
@@ -34,8 +34,9 @@ Sources map[string]*SourceMeta
} type Meta struct { - root *file.Root - log *log.Logger + root *file.Root + log *log.Logger + exists bool data }
@@ -43,6 +44,10 @@ func (i *Meta) IsSchemaOutdated() bool {
return i.SchemaVersion < CurrentSchemaVersion } +func (i *Meta) Exists() bool { + return i.exists +} + func (i *Meta) Save() error { i.SchemaVersion = CurrentSchemaVersion j, err := json.MarshalIndent(i.data, "", " ")
@@ -54,6 +59,8 @@ err = i.root.WriteFile(BaseName, j, 0o600)
if err != nil { return fault.Wrap(err, fmsg.With("could not save index metadata")) } + + i.exists = true return nil }
@@ -112,7 +119,7 @@ },
}, nil } -func Open(root *file.Root, log *log.Logger) (*Meta, error) { +func OpenOrCreate(root *file.Root, log *log.Logger) (*Meta, error) { exists, err := root.Exists(BaseName) if err != nil { return nil, fault.Wrap(err, fmsg.With("could not check for existence of index metadata"))