vain/vain.go

67 lines
1.1 KiB
Go
Raw Normal View History

2016-02-07 23:54:55 -08:00
/*
From the documentation for the go tool, it searches for the following header
when searching for packages:
<meta name="go-import" content="import-prefix vcs repo-root">
2016-02-08 00:15:22 -08:00
this is simply a service for aggregating a collection of prefix, vcs, and
repo-root tuples, and serving the appropriate header over http.
API
In order to add a new package POST a json object to the following route:
POST /v0/package/
A sample json object:
{
2016-02-11 11:57:16 -08:00
"path": "mcquay.me/vain",
"repo": "https://s.mcquay.me/sm/vain"
2016-02-08 00:15:22 -08:00
}
Naming
2016-02-11 11:57:16 -08:00
the "ysv" in ysvd stands for You're so Vain, the song by Carly Simon.
2016-02-07 23:54:55 -08:00
*/
2016-02-11 11:57:16 -08:00
package vain
2016-02-07 23:54:55 -08:00
import "fmt"
type vcs int
const (
Git vcs = iota
Hg
)
var vcss = [...]string{
"git",
"mercurial",
}
var labelToVcs = map[string]vcs{
"git": Git,
"mercurial": Hg,
"hg": Hg,
}
// String returns the name of the vcs ("git", "mercurial", ...).
func (v vcs) String() string { return vcss[v] }
2016-02-08 00:14:30 -08:00
type Package struct {
2016-02-07 23:54:55 -08:00
Vcs vcs `json":vcs"`
Path string `json:"path"`
Repo string `json:"repo"`
}
2016-02-08 00:14:30 -08:00
func (p Package) String() string {
2016-02-07 23:54:55 -08:00
return fmt.Sprintf(
"<meta name=\"go-import\" content=\"%s %s %s\">",
p.Path,
p.Vcs,
p.Repo,
)
}