From 4a43163fbadaac79e70f5826f1d184a0e0bc274d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Wed, 15 Nov 2023 22:49:44 +0100 Subject: [PATCH] Use strings.CutPrefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miloslav Trmač --- cmd/skopeo/list_tags.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cmd/skopeo/list_tags.go b/cmd/skopeo/list_tags.go index 98b46f8b..fa271e44 100644 --- a/cmd/skopeo/list_tags.go +++ b/cmd/skopeo/list_tags.go @@ -78,16 +78,12 @@ See skopeo-list-tags(1) section "REPOSITORY NAMES" for the expected format // Customized version of the alltransports.ParseImageName and docker.ParseReference that does not place a default tag in the reference // Would really love to not have this, but needed to enforce tag-less and digest-less names func parseDockerRepositoryReference(refString string) (types.ImageReference, error) { - if !strings.HasPrefix(refString, docker.Transport.Name()+"://") { + dockerRefString, ok := strings.CutPrefix(refString, docker.Transport.Name()+"://") + if !ok { return nil, fmt.Errorf("docker: image reference %s does not start with %s://", refString, docker.Transport.Name()) } - _, dockerImageName, hasColon := strings.Cut(refString, ":") - if !hasColon { - return nil, fmt.Errorf(`Invalid image name "%s", expected colon-separated transport:reference`, refString) - } - - ref, err := reference.ParseNormalizedNamed(strings.TrimPrefix(dockerImageName, "//")) + ref, err := reference.ParseNormalizedNamed(dockerRefString) if err != nil { return nil, err }