@@ -9,6 +9,13 @@ import (
9
9
"strings"
10
10
)
11
11
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
+
12
19
// "library" is the default "library directory"
13
20
// returns the parsed version of (in order):
14
21
// if "repo" is a URL, the remote contents of that URL
@@ -33,10 +40,10 @@ func Fetch(library, repo string) (string, string, *Manifest2822, error) {
33
40
}
34
41
defer resp .Body .Close ()
35
42
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
38
45
}
39
- return repoName , tagName , man , err
46
+ return repoName , tagName , man , validateTagName ( man , repoName , tagName )
40
47
}
41
48
42
49
// try file paths
@@ -55,10 +62,10 @@ func Fetch(library, repo string) (string, string, *Manifest2822, error) {
55
62
if err == nil {
56
63
defer f .Close ()
57
64
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
60
67
}
61
- return repoName , tagName , man , err
68
+ return repoName , tagName , man , validateTagName ( man , repoName , tagName )
62
69
}
63
70
}
64
71
0 commit comments