photoprism/pkg/fs/duf/util.go
Michael Mayer e1a9a68b29 FS: Add /pkg/fs/duf to determine mount points and disk usage #4266
Signed-off-by: Michael Mayer <michael@photoprism.app>
2025-03-03 11:24:30 +01:00

53 lines
941 B
Go

package duf
import (
"fmt"
"strings"
"github.com/IGLOU-EU/go-wildcard"
)
// parseCommaSeparatedValues parses comma separated string into a map.
func parseCommaSeparatedValues(values string) map[string]struct{} {
m := make(map[string]struct{})
for _, v := range strings.Split(values, ",") {
v = strings.TrimSpace(v)
if len(v) == 0 {
continue
}
v = strings.ToLower(v)
m[v] = struct{}{}
}
return m
}
// validateGroups validates the parsed group maps.
func validateGroups(m map[string]struct{}) error {
for k := range m {
found := false
for _, g := range groups {
if g == k {
found = true
break
}
}
if !found {
return fmt.Errorf("unknown device group: %s", k)
}
}
return nil
}
// findInKey parse a slice of pattern to match the given key.
func findInKey(str string, km map[string]struct{}) bool {
for p := range km {
if wildcard.Match(p, str) {
return true
}
}
return false
}