@@ -9,6 +9,13 @@ import (
99 "strings"
1010)
1111
12+ func validateTagName (man * Manifest2822 , repoName , tagName string ) error {
13+ if tagName != "" && (man .GetTag (tagName ) == nil && len (man .GetSharedTag (tagName )) == 0 ) {
14+ return fmt .Errorf ("tag not found in manifest for %q: %q" , repoName , tagName )
15+ }
16+ return nil
17+ }
18+
1219// "library" is the default "library directory"
1320// returns the parsed version of (in order):
1421// if "repo" is a URL, the remote contents of that URL
@@ -33,10 +40,10 @@ func Fetch(library, repo string) (string, string, *Manifest2822, error) {
3340 }
3441 defer resp .Body .Close ()
3542 man , err := Parse (resp .Body )
36- if tagName != "" && man . GetTag ( tagName ) = = nil {
37- return repoName , tagName , man , fmt . Errorf ( "tag not found in manifest for %q: %q" , repoName , tagName )
43+ if err ! = nil {
44+ return repoName , tagName , man , err
3845 }
39- return repoName , tagName , man , err
46+ return repoName , tagName , man , validateTagName ( man , repoName , tagName )
4047 }
4148
4249 // try file paths
@@ -55,10 +62,10 @@ func Fetch(library, repo string) (string, string, *Manifest2822, error) {
5562 if err == nil {
5663 defer f .Close ()
5764 man , err := Parse (f )
58- if tagName != "" && man . GetTag ( tagName ) = = nil {
59- return repoName , tagName , man , fmt . Errorf ( "tag not found in manifest for %q: %q" , repoName , tagName )
65+ if err ! = nil {
66+ return repoName , tagName , man , err
6067 }
61- return repoName , tagName , man , err
68+ return repoName , tagName , man , validateTagName ( man , repoName , tagName )
6269 }
6370 }
6471
0 commit comments