diff options
author | Alan Pearce | 2024-05-13 21:50:14 +0200 |
---|---|---|
committer | Alan Pearce | 2024-05-13 22:25:46 +0200 |
commit | 6b40e0c0fa90f11be14a93f1d6275779fd645cac (patch) | |
tree | 0df5bea87242450829ca441d235c077a0e09a149 /internal/search/index_meta.go | |
parent | 2722f24af87f437ed9fcb8cc743ad1784141fd3a (diff) | |
download | searchix-6b40e0c0fa90f11be14a93f1d6275779fd645cac.tar.lz searchix-6b40e0c0fa90f11be14a93f1d6275779fd645cac.tar.zst searchix-6b40e0c0fa90f11be14a93f1d6275779fd645cac.zip |
refactor: combine import and web server into one binary
Diffstat (limited to 'internal/search/index_meta.go')
-rw-r--r-- | internal/search/index_meta.go | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/internal/search/index_meta.go b/internal/search/index_meta.go deleted file mode 100644 index bb7e69f..0000000 --- a/internal/search/index_meta.go +++ /dev/null @@ -1,73 +0,0 @@ -package search - -import ( - "encoding/json" - "log/slog" - "os" - "searchix/internal/file" - - "github.com/pkg/errors" -) - -const CurrentSchemaVersion = 1 - -type IndexMeta struct { - path string - SchemaVersion int -} - -func createMeta(path string) (*IndexMeta, error) { - exists, err := file.Exists(path) - if err != nil { - return nil, errors.WithMessage(err, "could not check for existence of index metadata") - } - if exists { - return nil, errors.New("index metadata already exists") - } - - return &IndexMeta{ - path: path, - SchemaVersion: CurrentSchemaVersion, - }, nil -} - -func openMeta(path string) (*IndexMeta, error) { - j, err := os.ReadFile(path) - if err != nil { - return nil, errors.WithMessage(err, "could not open index metadata file") - } - var meta IndexMeta - err = json.Unmarshal(j, &meta) - if err != nil { - return nil, errors.WithMessage(err, "index metadata is corrupt, try replacing the index") - } - - meta.checkSchemaVersion() - - return &meta, nil -} - -func (i *IndexMeta) checkSchemaVersion() { - if i.SchemaVersion < CurrentSchemaVersion { - slog.Warn( - "Index schema version out of date, suggest re-indexing", - "schema_version", - i.SchemaVersion, - "latest_version", - CurrentSchemaVersion, - ) - } -} - -func (i *IndexMeta) Save() error { - j, err := json.Marshal(i) - if err != nil { - return errors.WithMessage(err, "could not prepare index metadata for saving") - } - err = os.WriteFile(i.path, j, 0o600) - if err != nil { - return errors.WithMessage(err, "could not save index metadata") - } - - return nil -} |