archiver/getGlob_linux.go
2024-09-26 11:33:03 +02:00

35 lines
935 B
Go

package archiver
import (
"path/filepath"
"strings"
)
func getGlobRoot(path string) string {
// Splitte den Pfad in seine Komponenten
pathSplit := strings.Split(path, string(filepath.Separator))
// Durchlaufe die Pfadsegmente, um nach dem ersten '*' zu suchen
for i, split := range pathSplit {
if strings.Contains(split, "*") {
// Kombiniere den Pfad bis zum ersten '*' Segment
combined := filepath.Join(pathSplit[0:i]...)
// Falls der Pfad absolut ist, füge den führenden Separator hinzu
if filepath.IsAbs(path) {
return string(filepath.Separator) + combined
}
// Falls das erste Segment ein "." ist, gib den relativen Pfad zurück
if pathSplit[0] == "." {
return "." + string(filepath.Separator) + combined
}
// Andernfalls gib den kombinierten Pfad ohne Anpassung zurück
return combined
}
}
// Falls kein '*' gefunden wurde, gib den originalen Pfad zurück
return path
}