8735fcdb7d
- The [rupture](https://github.com/ethantkoenig/rupture) dependency was essentially outdated in the sense it was using old version of dependencies. - The usage by Forgejo was rather a small portion, so that portion is now vendored (with its tests). - Removes old dependencies from go.sum (less dependencies is better for reviewing what the heck we're importing). Just to note that they were likely not being used by Go's build process (according to https://go.dev/ref/mod#minimal-version-selection), so it's really a matter of formal cleaning up dependencies we don't use and therefor don't want to download and be in our go.sum. (cherry picked from commit aa72a5f009b5027b2324106343f91b466ba46293) Conflicts: go.sum https://codeberg.org/forgejo/forgejo/pulls/2148 (cherry picked from commit fbe8d65f0b1836b2e771991b4d5d12f1bfa938ed) (cherry picked from commit e18debcb6a9476f60d364e847265b4ac7fb76c8e) Conflicts: go.sum https://codeberg.org/forgejo/forgejo/pulls/2245 (cherry picked from commit 8c43c2ada82102a0df44fd874c4f5fe3a36ef758)
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
// Copied and modified from https://github.com/ethantkoenig/rupture (MIT License)
|
|
|
|
package bleve
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"code.gitea.io/gitea/modules/json"
|
|
)
|
|
|
|
const metaFilename = "rupture_meta.json"
|
|
|
|
func indexMetadataPath(dir string) string {
|
|
return filepath.Join(dir, metaFilename)
|
|
}
|
|
|
|
// IndexMetadata contains metadata about a bleve index.
|
|
type IndexMetadata struct {
|
|
// The version of the data in the index. This can be useful for tracking
|
|
// schema changes or data migrations.
|
|
Version int `json:"version"`
|
|
}
|
|
|
|
// readIndexMetadata returns the metadata for the index at the specified path.
|
|
// If no such index metadata exists, an empty metadata and a nil error are
|
|
// returned.
|
|
func readIndexMetadata(path string) (*IndexMetadata, error) {
|
|
meta := &IndexMetadata{}
|
|
metaPath := indexMetadataPath(path)
|
|
if _, err := os.Stat(metaPath); os.IsNotExist(err) {
|
|
return meta, nil
|
|
} else if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
metaBytes, err := os.ReadFile(metaPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return meta, json.Unmarshal(metaBytes, &meta)
|
|
}
|
|
|
|
// writeIndexMetadata writes metadata for the index at the specified path.
|
|
func writeIndexMetadata(path string, meta *IndexMetadata) error {
|
|
metaBytes, err := json.Marshal(meta)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return os.WriteFile(indexMetadataPath(path), metaBytes, 0o644)
|
|
}
|