@@ -5,6 +5,7 @@ import "regexp"
5
5
type vanityParser func (string , string ) * Tuple
6
6
7
7
var vanity = map [string ]vanityParser {
8
+ "bazil.org" : bazilOrgParser ,
8
9
"cloud.google.com" : cloudGoogleComParser ,
9
10
"code.cloudfoundry.org" : codeCloudfoundryOrgParser ,
10
11
"go.etcd.io" : goEtcdIoParser ,
@@ -14,6 +15,7 @@ var vanity = map[string]vanityParser{
14
15
"gopkg.in" : gopkgInParser ,
15
16
"k8s.io" : k8sIoParser ,
16
17
"mvdan.cc" : mvdanCcParser ,
18
+ "rsc.io" : rscIoParser ,
17
19
}
18
20
19
21
func tryVanity (pkg , packagePrefix string ) (* Tuple , error ) {
@@ -25,6 +27,20 @@ func tryVanity(pkg, packagePrefix string) (*Tuple, error) {
25
27
return nil , nil
26
28
}
27
29
30
+ // bazil.org/fuse -> github.com/bazil/fuse
31
+ var bazilOrgRe = regexp .MustCompile (`\Abazil\.org/([0-9A-Za-z][-0-9A-Za-z]+)\z` )
32
+
33
+ func bazilOrgParser (pkg , packagePrefix string ) * Tuple {
34
+ if ! bazilOrgRe .MatchString (pkg ) {
35
+ return nil
36
+ }
37
+ sm := bazilOrgRe .FindAllStringSubmatch (pkg , - 1 )
38
+ if len (sm ) == 0 {
39
+ return nil
40
+ }
41
+ return newTuple (GH {}, pkg , "bazil" , sm [0 ][1 ], packagePrefix )
42
+ }
43
+
28
44
// cloud.google.com/go/* -> github.com/googleapis/google-cloud-go
29
45
var cloudGoogleComRe = regexp .MustCompile (`\Acloud\.google\.com/go(/([0-9A-Za-z][-0-9A-Za-z]+))?\z` )
30
46
@@ -150,3 +166,17 @@ func mvdanCcParser(pkg, packagePrefix string) *Tuple {
150
166
}
151
167
return newTuple (GH {}, pkg , "mvdan" , sm [0 ][1 ], packagePrefix )
152
168
}
169
+
170
+ // rsc.io/pdf -> github.com/rsc/pdf
171
+ var rscIoRe = regexp .MustCompile (`\Arsc\.io/([0-9A-Za-z][-0-9A-Za-z]+)\z` )
172
+
173
+ func rscIoParser (pkg , packagePrefix string ) * Tuple {
174
+ if ! rscIoRe .MatchString (pkg ) {
175
+ return nil
176
+ }
177
+ sm := rscIoRe .FindAllStringSubmatch (pkg , - 1 )
178
+ if len (sm ) == 0 {
179
+ return nil
180
+ }
181
+ return newTuple (GH {}, pkg , "rsc" , sm [0 ][1 ], packagePrefix )
182
+ }
0 commit comments