]> Cypherpunks repositories - gostls13.git/commitdiff
goinstall: only report successfully-installed packages to the dashboard
authorAndrew Gerrand <adg@golang.org>
Mon, 4 Jul 2011 06:05:11 +0000 (16:05 +1000)
committerAndrew Gerrand <adg@golang.org>
Mon, 4 Jul 2011 06:05:11 +0000 (16:05 +1000)
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/4657071

src/cmd/goinstall/download.go
src/cmd/goinstall/main.go

index ab5662e272e958364bfd6b868e10b02544591620..da892a69d47574f3e542835c4ddb53b8567aeb7d 100644 (file)
@@ -214,33 +214,35 @@ func isRemote(pkg string) bool {
 }
 
 // download checks out or updates pkg from the remote server.
-func download(pkg, srcDir string) os.Error {
+func download(pkg, srcDir string) (dashReport bool, err os.Error) {
        if strings.Contains(pkg, "..") {
-               return os.NewError("invalid path (contains ..)")
+               err = os.NewError("invalid path (contains ..)")
+               return
        }
-       dashReport := true
        m, err := findHostedRepo(pkg)
        if err != nil {
-               return err
+               return
        }
-       if m == nil {
+       if m != nil {
+               dashReport = true // only report public code hosting sites
+       } else {
                m, err = findAnyRepo(pkg)
                if err != nil {
-                       return err
+                       return
                }
-               dashReport = false // only report public code hosting sites
        }
        if m == nil {
-               return os.NewError("cannot download: " + pkg)
+               err = os.NewError("cannot download: " + pkg)
+               return
        }
        installed, err := m.checkoutRepo(srcDir, m.prefix, m.repo)
        if err != nil {
-               return err
+               return
        }
-       if dashReport && installed {
-               maybeReportToDashboard(pkg)
+       if !installed {
+               dashReport = false
        }
-       return nil
+       return
 }
 
 // Try to detect if a "release" tag exists.  If it does, update
index bdf8469a00019021306a92fba075c918a0f8c9a4..5cdf0f18e2100e9d6d8e82d97380fb5867faac9d 100644 (file)
@@ -182,9 +182,10 @@ func install(pkg, parent string) {
        }
        // Download remote packages if not found or forced with -u flag.
        remote := isRemote(pkg)
+       dashReport := false
        if remote && (err == build.ErrNotFound || (err == nil && *update)) {
                printf("%s: download\n", pkg)
-               err = download(pkg, tree.SrcDir())
+               dashReport, err = download(pkg, tree.SrcDir())
        }
        if err != nil {
                errorf("%s: %v\n", pkg, err)
@@ -243,6 +244,9 @@ func install(pkg, parent string) {
                        }
                }
        }
+       if dashReport {
+               maybeReportToDashboard(pkg)
+       }
        if remote {
                // mark package as installed in $GOROOT/goinstall.log
                logPackage(pkg)