You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
package reference |
|
|
|
import "path" |
|
|
|
// IsNameOnly returns true if reference only contains a repo name. |
|
func IsNameOnly(ref Named) bool { |
|
if _, ok := ref.(NamedTagged); ok { |
|
return false |
|
} |
|
if _, ok := ref.(Canonical); ok { |
|
return false |
|
} |
|
return true |
|
} |
|
|
|
// FamiliarName returns the familiar name string |
|
// for the given named, familiarizing if needed. |
|
func FamiliarName(ref Named) string { |
|
if nn, ok := ref.(normalizedNamed); ok { |
|
return nn.Familiar().Name() |
|
} |
|
return ref.Name() |
|
} |
|
|
|
// FamiliarString returns the familiar string representation |
|
// for the given reference, familiarizing if needed. |
|
func FamiliarString(ref Reference) string { |
|
if nn, ok := ref.(normalizedNamed); ok { |
|
return nn.Familiar().String() |
|
} |
|
return ref.String() |
|
} |
|
|
|
// FamiliarMatch reports whether ref matches the specified pattern. |
|
// See https://godoc.org/path#Match for supported patterns. |
|
func FamiliarMatch(pattern string, ref Reference) (bool, error) { |
|
matched, err := path.Match(pattern, FamiliarString(ref)) |
|
if namedRef, isNamed := ref.(Named); isNamed && !matched { |
|
matched, _ = path.Match(pattern, FamiliarName(namedRef)) |
|
} |
|
return matched, err |
|
}
|
|
|