From 06fff2f2c85d55811098c2e17a68e0091b303abd Mon Sep 17 00:00:00 2001 From: Nathan Youngman Date: Tue, 23 Sep 2014 22:22:44 -0600 Subject: [PATCH] add a few comments --- main.go | 14 ++++++-------- version.go | 6 ++++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index df72f05..a5a642c 100644 --- a/main.go +++ b/main.go @@ -29,9 +29,6 @@ func main() { func run() error { flag.Parse() - //if len(flag.Args()) > 0 { - // return fmt.Errorf("too many arguments: %s", flag.Args()[0]) - //} http.HandleFunc("/", handler) @@ -68,11 +65,12 @@ go get {{.GopkgPath}} `)) +// Repo represents a source code repository on GitHub. type Repo struct { User string Name string SubPath string - OldFormat bool + OldFormat bool // The old /v2/pkg format. MajorVersion Version AllVersions VersionList } @@ -91,12 +89,12 @@ func (repo *Repo) GopkgRoot() string { return repo.GopkgVersionRoot(repo.MajorVersion) } -// GopkgRoot returns the package path at gopkg.in, without a schema. +// GopkgPath returns the package path at gopkg.in, without a schema. func (repo *Repo) GopkgPath() string { return repo.GopkgVersionRoot(repo.MajorVersion) + repo.SubPath } -// GopkgVerisonRoot returns the package root in gopkg.in for the +// GopkgVersionRoot returns the package root in gopkg.in for the // provided version, without a schema. func (repo *Repo) GopkgVersionRoot(version Version) string { version.Minor = -1 @@ -222,8 +220,8 @@ var httpClient = &http.Client{Timeout: 10 * time.Second} const refsSuffix = ".git/info/refs?service=git-upload-pack" -var ErrNoRepo = errors.New("repository not found in github") -var ErrNoVersion = errors.New("version reference not found in github") +var ErrNoRepo = errors.New("repository not found in GitHub") +var ErrNoVersion = errors.New("version reference not found in GitHub") func hackedRefs(repo *Repo) (data []byte, versions []Version, err error) { resp, err := httpClient.Get("https://" + repo.GitHubRoot() + refsSuffix) diff --git a/version.go b/version.go index f16f7fe..f0e0718 100644 --- a/version.go +++ b/version.go @@ -4,6 +4,8 @@ import ( "fmt" ) +// Version is a semantic version number (SemVer). +// An element that is not present is represented as -1. type Version struct { Major, Minor, Patch int } @@ -21,6 +23,7 @@ func (v Version) String() string { return fmt.Sprintf("v%d.%d.%d", v.Major, v.Minor, v.Patch) } +// Less returns true if v is less than other. func (v Version) Less(other Version) bool { if v.Major != other.Major { return v.Major < other.Major @@ -31,6 +34,7 @@ func (v Version) Less(other Version) bool { return v.Patch < other.Patch } +// Contains returns true if other >= v yet below the next major version. func (v Version) Contains(other Version) bool { if v.Patch != -1 { return v == other @@ -41,10 +45,12 @@ func (v Version) Contains(other Version) bool { return v.Major == other.Major } +// IsValid tests if a version is valid. func (v Version) IsValid() bool { return v != InvalidVersion } +// InvalidVersion represents a version that can't be parsed. var InvalidVersion = Version{-1, -1, -1} func parseVersion(s string) (Version, bool) {