cmd/pkgsite: fix setting gorepo flag

The value of the gorepo flag variable was being used before flags were
parsed. Fix that.

Also fix a couple of other issues that came up in golang/go#68533:
First, don't print "searching GOPATH" when we're not searching GOPATH.
Second, print the stderr from the go command in the error when it fails
because it's the stderr that usually provides information about the
failure, not the stdout.

For golang/go#68533

Change-Id: Ic6321d6e071dd82415474f2a2c54146e9eabbef7
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/600917
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Michael Matloob <matloob@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
kokoro-CI: kokoro <noreply+kokoro@google.com>
diff --git a/cmd/internal/pkgsite/server.go b/cmd/internal/pkgsite/server.go
index aa57f40..1435683 100644
--- a/cmd/internal/pkgsite/server.go
+++ b/cmd/internal/pkgsite/server.go
@@ -71,7 +71,7 @@
 		var err error
 		cfg.dirs, err = getModuleDirs(ctx, serverCfg.Paths)
 		if err != nil {
-			return nil, fmt.Errorf("searching GOPATH: %v", err)
+			return nil, fmt.Errorf("searching modules: %v", err)
 		}
 	}
 
@@ -332,6 +332,9 @@
 	cmd.Dir = dir
 	out, err := cmd.Output()
 	if err != nil {
+		if ee, ok := err.(*exec.ExitError); ok {
+			out = append(out, ee.Stderr...)
+		}
 		return nil, fmt.Errorf("running go with %q: %v: %s", args, err, out)
 	}
 	return out, nil
diff --git a/cmd/pkgsite/main.go b/cmd/pkgsite/main.go
index 50b6944..6f431be 100644
--- a/cmd/pkgsite/main.go
+++ b/cmd/pkgsite/main.go
@@ -85,8 +85,6 @@
 	flag.BoolVar(&serverCfg.UseListedMods, "list", true, "for each path, serve all modules in build list")
 	flag.BoolVar(&serverCfg.DevMode, "dev", false, "enable developer mode (reload templates on each page load, serve non-minified JS/CSS, etc.)")
 	flag.StringVar(&serverCfg.DevModeStaticDir, "static", "static", "path to folder containing static files served")
-	serverCfg.UseLocalStdlib = true
-	serverCfg.GoRepoPath = *goRepoPath
 
 	flag.Usage = func() {
 		out := flag.CommandLine.Output()
@@ -96,6 +94,9 @@
 		flag.PrintDefaults()
 	}
 	flag.Parse()
+
+	serverCfg.UseLocalStdlib = true
+	serverCfg.GoRepoPath = *goRepoPath
 	serverCfg.Paths = collectPaths(flag.Args())
 
 	if serverCfg.UseCache || *useProxy {