35 lines
935 B
Go
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
|
|
}
|