package handler import ( "github.com/loveuer/nf" "strings" ) func isBlob(c *nf.Ctx) bool { elem := strings.Split(c.Path(), "/") elem = elem[1:] if elem[len(elem)-1] == "" { elem = elem[:len(elem)-1] } if len(elem) < 3 { return false } return elem[len(elem)-2] == "blobs" || (elem[len(elem)-3] == "blobs" && elem[len(elem)-2] == "uploads") } func isManifest(c *nf.Ctx) bool { elems := strings.Split(c.Path(), "/") elems = elems[1:] if len(elems) < 4 { return false } return elems[len(elems)-2] == "manifests" } func isTags(c *nf.Ctx) bool { elems := strings.Split(c.Path(), "/") elems = elems[1:] if len(elems) < 4 { return false } return elems[len(elems)-2] == "tags" } func isCatalog(c *nf.Ctx) bool { elems := strings.Split(c.Path(), "/") elems = elems[1:] if len(elems) < 2 { return false } return elems[len(elems)-1] == "_catalog" } func isReferrers(c *nf.Ctx) bool { elems := strings.Split(c.Path(), "/") elems = elems[1:] if len(elems) < 4 { return false } return elems[len(elems)-2] == "referrers" }