Browse Source

Merge pull request #26 from libgo/code-read

A few minor tweaks.
master
Gustavo Niemeyer 9 years ago
parent
commit
cda7bad625
4 changed files with 21 additions and 9 deletions
  1. +3
    -0
      README.md
  2. +6
    -8
      main.go
  3. +10
    -0
      version.go
  4. +2
    -1
      version_test.go

+ 3
- 0
README.md View File

@@ -0,0 +1,3 @@
# gopkg.in Stable APIs for the Go language

See [http://gopkg.in](http://gopkg.in).

+ 6
- 8
main.go View File

@@ -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}}
</html>
`))

// 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)


+ 10
- 0
version.go View File

@@ -4,6 +4,8 @@ import (
"fmt"
)

// Version represents a version number.
// 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 whether 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,12 @@ func (v Version) Less(other Version) bool {
return v.Patch < other.Patch
}

// Contains returns whether version v contains version other.
// Version v is defined to contain version other when they both have the same Major
// version and v.Minor and v.Patch are either undefined or are equal to other's.
//
// For example, Version{1, 1, -1} contains both Version{1, 1, -1} and Version{1, 1, 2},
// but not Version{1, -1, -1} or Version{1, 2, -1}.
func (v Version) Contains(other Version) bool {
if v.Patch != -1 {
return v == other
@@ -45,6 +54,7 @@ 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) {


+ 2
- 1
version_test.go View File

@@ -1,8 +1,9 @@
package main

import (
. "launchpad.net/gocheck"
"testing"

. "gopkg.in/check.v1"
)

func Test(t *testing.T) { TestingT(t) }


Loading…
Cancel
Save