diff options
author | Andrew Gerrand <adg@golang.org> | 2011-06-01 11:56:46 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2011-06-01 11:56:46 +1000 |
commit | 581bd378ec1187780123df66a060be5faebef917 (patch) | |
tree | 09f306e24c602399f660cba8ed1994705fa916b8 | |
parent | 9f0cabfab97aa2194d5757c1fcd78018d72d65e2 (diff) | |
download | go-581bd378ec1187780123df66a060be5faebef917.tar.gz go-581bd378ec1187780123df66a060be5faebef917.zip |
gobuilder: include file missing from change, fix build
R=golang-dev
CC=golang-dev
https://golang.org/cl/4539099
-rw-r--r-- | src/cmd/goinstall/download.go | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/cmd/goinstall/download.go b/src/cmd/goinstall/download.go index 7dad596abc..2edf85efdf 100644 --- a/src/cmd/goinstall/download.go +++ b/src/cmd/goinstall/download.go @@ -31,23 +31,36 @@ func maybeReportToDashboard(path string) { } } -var googlecode = regexp.MustCompile(`^([a-z0-9\-]+\.googlecode\.com/(svn|hg))(/[a-z0-9A-Z_.\-/]*)?$`) -var github = regexp.MustCompile(`^(github\.com/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]*)?$`) -var bitbucket = regexp.MustCompile(`^(bitbucket\.org/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]*)?$`) -var launchpad = regexp.MustCompile(`^(launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+))(/[a-z0-9A-Z_.\-/]+)?$`) +var vcsPatterns = map[string]*regexp.Regexp{ + "googlecode": regexp.MustCompile(`^([a-z0-9\-]+\.googlecode\.com/(svn|hg))(/[a-z0-9A-Z_.\-/]*)?$`), + "github": regexp.MustCompile(`^(github\.com/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]*)?$`), + "bitbucket": regexp.MustCompile(`^(bitbucket\.org/[a-z0-9A-Z_.\-]+/[a-z0-9A-Z_.\-]+)(/[a-z0-9A-Z_.\-/]*)?$`), + "launchpad": regexp.MustCompile(`^(launchpad\.net/([a-z0-9A-Z_.\-]+(/[a-z0-9A-Z_.\-]+)?|~[a-z0-9A-Z_.\-]+/(\+junk|[a-z0-9A-Z_.\-]+)/[a-z0-9A-Z_.\-]+))(/[a-z0-9A-Z_.\-/]+)?$`), +} + +// isRemote returns true if the provided package path +// matches one of the supported remote repositories. +func isRemote(pkg string) bool { + for _, r := range vcsPatterns { + if r.MatchString(pkg) { + return true + } + } + return false +} // download checks out or updates pkg from the remote server. func download(pkg, srcDir string) os.Error { if strings.Contains(pkg, "..") { return os.ErrorString("invalid path (contains ..)") } - if m := bitbucket.FindStringSubmatch(pkg); m != nil { + if m := vcsPatterns["bitbucket"].FindStringSubmatch(pkg); m != nil { if err := vcsCheckout(&hg, srcDir, m[1], "http://"+m[1], m[1]); err != nil { return err } return nil } - if m := googlecode.FindStringSubmatch(pkg); m != nil { + if m := vcsPatterns["googlecode"].FindStringSubmatch(pkg); m != nil { var v *vcs switch m[2] { case "hg": @@ -63,7 +76,7 @@ func download(pkg, srcDir string) os.Error { } return nil } - if m := github.FindStringSubmatch(pkg); m != nil { + if m := vcsPatterns["github"].FindStringSubmatch(pkg); m != nil { if strings.HasSuffix(m[1], ".git") { return os.ErrorString("repository " + pkg + " should not have .git suffix") } @@ -72,7 +85,7 @@ func download(pkg, srcDir string) os.Error { } return nil } - if m := launchpad.FindStringSubmatch(pkg); m != nil { + if m := vcsPatterns["launchpad"].FindStringSubmatch(pkg); m != nil { // Either lp.net/<project>[/<series>[/<path>]] // or lp.net/~<user or team>/<project>/<branch>[/<path>] if err := vcsCheckout(&bzr, srcDir, m[1], "https://"+m[1], m[1]); err != nil { |