gobuilder: work with codereview plugin enabled in .hgrc
        Fixes #3312.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/5907065
diff --git a/misc/dashboard/builder/Makefile b/misc/dashboard/builder/Makefile
index abf3755..4e4d408 100644
--- a/misc/dashboard/builder/Makefile
+++ b/misc/dashboard/builder/Makefile
@@ -2,8 +2,8 @@
 # Use of this source code is governed by a BSD-style
 # license that can be found in the LICENSE file.
 
-gobuilder: $(shell ls *.go)
+builder: $(shell ls *.go)
 	go build -o $@ $^
 
 clean:
-	rm -f gobuilder
+	rm -f builder
diff --git a/misc/dashboard/builder/main.go b/misc/dashboard/builder/main.go
index 85bb7ad..4210d88 100644
--- a/misc/dashboard/builder/main.go
+++ b/misc/dashboard/builder/main.go
@@ -220,7 +220,7 @@
 	// Look for hash locally before running hg pull.
 	if _, err := fullHash(goroot, hash[:12]); err != nil {
 		// Don't have hash, so run hg pull.
-		if err := run(nil, goroot, "hg", "pull"); err != nil {
+		if err := run(nil, goroot, hgCmd("pull")...); err != nil {
 			log.Println("hg pull failed:", err)
 			return false
 		}
@@ -243,12 +243,12 @@
 	defer os.RemoveAll(workpath)
 
 	// clone repo
-	if err := run(nil, workpath, "hg", "clone", goroot, "go"); err != nil {
+	if err := run(nil, workpath, hgCmd("clone", goroot, "go")...); err != nil {
 		return err
 	}
 
 	// update to specified revision
-	if err := run(nil, filepath.Join(workpath, "go"), "hg", "update", hash); err != nil {
+	if err := run(nil, filepath.Join(workpath, "go"), hgCmd("update", hash)...); err != nil {
 		return err
 	}
 
@@ -369,7 +369,7 @@
 
 	// hg update to the specified hash
 	pkgPath := filepath.Join(goRoot, "src/pkg", pkg)
-	if err := run(nil, pkgPath, "hg", "update", hash); err != nil {
+	if err := run(nil, pkgPath, hgCmd("update", hash)...); err != nil {
 		return "", err
 	}
 
@@ -475,7 +475,7 @@
 }
 
 func hgClone(url, path string) error {
-	return run(nil, *buildroot, "hg", "clone", url, path)
+	return run(nil, *buildroot, hgCmd("clone", url, path)...)
 }
 
 func hgRepoExists(path string) bool {
@@ -532,17 +532,17 @@
 		}
 	}
 
-	if err := run(nil, pkgRoot, "hg", "pull"); err != nil {
+	if err := run(nil, pkgRoot, hgCmd("pull")...); err != nil {
 		log.Printf("hg pull: %v", err)
 		return
 	}
 
 	const N = 50 // how many revisions to grab
 
-	data, _, err := runLog(nil, "", pkgRoot, "hg", "log",
+	data, _, err := runLog(nil, "", pkgRoot, hgCmd("log",
 		"--encoding=utf-8",
 		"--limit="+strconv.Itoa(N),
-		"--template="+xmlLogTemplate,
+		"--template="+xmlLogTemplate)...,
 	)
 	if err != nil {
 		log.Printf("hg log: %v", err)
@@ -628,11 +628,11 @@
 // fullHash returns the full hash for the given Mercurial revision.
 func fullHash(root, rev string) (string, error) {
 	s, _, err := runLog(nil, "", root,
-		"hg", "log",
-		"--encoding=utf-8",
-		"--rev="+rev,
-		"--limit=1",
-		"--template={node}",
+		hgCmd("log",
+			"--encoding=utf-8",
+			"--rev="+rev,
+			"--limit=1",
+			"--template={node}")...,
 	)
 	if err != nil {
 		return "", nil
@@ -681,3 +681,7 @@
 	}
 	return "", false
 }
+
+func hgCmd(args ...string) []string {
+	return append([]string{"hg", "--config", "extensions.codereview=!"}, args...)
+}