forked from TrueCloudLab/distribution
Fix: Compare path properly when list repository in catalog. #1854
Signed-off-by: Sebastien Coavoux <alignak@pyseb.cx>
This commit is contained in:
parent
3290e2bef5
commit
a9c9daf0f2
1 changed files with 21 additions and 1 deletions
|
@ -39,7 +39,7 @@ func (reg *registry) Repositories(ctx context.Context, repos []string, last stri
|
|||
_, file := path.Split(repoPath)
|
||||
if file == "_layers" {
|
||||
repoPath = strings.TrimSuffix(repoPath, "/_layers")
|
||||
if repoPath > last {
|
||||
if pathGreaterThan(repoPath, last) {
|
||||
foundRepos = append(foundRepos, repoPath)
|
||||
}
|
||||
return ErrSkipDir
|
||||
|
@ -95,3 +95,23 @@ func (reg *registry) Enumerate(ctx context.Context, ingester func(string) error)
|
|||
return nil
|
||||
|
||||
}
|
||||
|
||||
func pathGreaterThan(pathX, pathY string) (b bool) {
|
||||
splitPathX := strings.SplitN(pathX, "/", 2)
|
||||
splitPathY := strings.SplitN(pathY, "/", 2)
|
||||
|
||||
if splitPathX[0] == splitPathY[0] {
|
||||
if len(splitPathX) == 1 && len(splitPathY) == 1 {
|
||||
return false
|
||||
} else if len(splitPathX) == 1 && len(splitPathY) != 1 {
|
||||
return false
|
||||
} else if len(splitPathX) != 1 && len(splitPathY) == 1 {
|
||||
return true
|
||||
}
|
||||
|
||||
return pathGreaterThan(splitPathX[1], splitPathY[1])
|
||||
|
||||
}
|
||||
|
||||
return splitPathX[0] > splitPathY[0]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue