feat(Store): allows overriding of directory with PDA_DATA_DIR env
This commit is contained in:
parent
13243e97a3
commit
67fda05145
1 changed files with 9 additions and 9 deletions
|
|
@ -182,8 +182,8 @@ func (s *Store) parse(k string, defaults bool) ([]byte, string, error) {
|
||||||
|
|
||||||
func (s *Store) parseDB(v string, defaults bool) (string, error) {
|
func (s *Store) parseDB(v string, defaults bool) (string, error) {
|
||||||
db := strings.TrimSpace(v)
|
db := strings.TrimSpace(v)
|
||||||
if strings.HasPrefix(db, "@") {
|
if after, ok := strings.CutPrefix(db, "@"); ok {
|
||||||
db = strings.TrimPrefix(db, "@")
|
db = after
|
||||||
}
|
}
|
||||||
if db == "" {
|
if db == "" {
|
||||||
if defaults {
|
if defaults {
|
||||||
|
|
@ -206,6 +206,12 @@ func (s *Store) open(name string) (*badger.DB, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) path(args ...string) (string, error) {
|
func (s *Store) path(args ...string) (string, error) {
|
||||||
|
if override := os.Getenv("PDA_DATA_DIR"); override != "" {
|
||||||
|
if err := os.MkdirAll(override, 0o750); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return filepath.Join(append([]string{override}, args...)...), nil
|
||||||
|
}
|
||||||
scope := gap.NewVendorScope(gap.User, "pda", "stores")
|
scope := gap.NewVendorScope(gap.User, "pda", "stores")
|
||||||
dir, err := scope.DataPath("")
|
dir, err := scope.DataPath("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -225,13 +231,7 @@ func (s *Store) suggestStores(target string) ([]string, error) {
|
||||||
target = strings.TrimSpace(target)
|
target = strings.TrimSpace(target)
|
||||||
minThreshold := 1
|
minThreshold := 1
|
||||||
maxThreshold := 4
|
maxThreshold := 4
|
||||||
threshold := len(target) / 3
|
threshold := min(max(len(target)/3, minThreshold), maxThreshold)
|
||||||
if threshold < minThreshold {
|
|
||||||
threshold = minThreshold
|
|
||||||
}
|
|
||||||
if threshold > maxThreshold {
|
|
||||||
threshold = maxThreshold
|
|
||||||
}
|
|
||||||
var suggestions []string
|
var suggestions []string
|
||||||
for _, store := range stores {
|
for _, store := range stores {
|
||||||
distance := levenshtein.ComputeDistance(target, store)
|
distance := levenshtein.ComputeDistance(target, store)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue