cmd/golangorg: remove global fsys, site

Also clean up hostEnforcerHandler doc comment while we are here.

Change-Id: I2db17d8146eaba95c887e1439320e30e9c8fc769
Reviewed-on: https://go-review.googlesource.com/c/website/+/328009
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/golangorg/handlers.go b/cmd/golangorg/handlers.go
index 3287e64..694e1fe 100644
--- a/cmd/golangorg/handlers.go
+++ b/cmd/golangorg/handlers.go
@@ -17,15 +17,8 @@
 	"golang.org/x/website/internal/web"
 )
 
-var (
-	site *web.Site
-	fsys fs.FS
-)
-
-// hostEnforcerHandler redirects requests to "http://foo.golang.org/bar"
-// to "https://golang.org/bar".
-// It permits requests to the host "godoc-test.golang.org" for testing and
-// golang.google.cn for Chinese users.
+// hostEnforcerHandler redirects http://foo.golang.org/bar to https://golang.org/bar.
+// It permits golang.google.cn for China and *-dot-golang-org.appspot.com for testing.
 type hostEnforcerHandler struct {
 	h http.Handler
 }
@@ -65,7 +58,7 @@
 	return false
 }
 
-func registerHandlers(site *web.Site) *http.ServeMux {
+func registerHandlers(fsys fs.FS, site *web.Site) *http.ServeMux {
 	if site == nil {
 		panic("nil Site")
 	}
diff --git a/cmd/golangorg/main.go b/cmd/golangorg/main.go
index 19cb8d5..0d649e3 100644
--- a/cmd/golangorg/main.go
+++ b/cmd/golangorg/main.go
@@ -122,16 +122,15 @@
 	} else {
 		gorootFS = osfs.DirFS(*goroot)
 	}
-	fsys = unionFS{content, gorootFS}
+	fsys := unionFS{content, gorootFS}
 
-	var err error
-	site, err = web.NewSite(fsys)
+	site, err := web.NewSite(fsys)
 	if err != nil {
 		log.Fatalf("NewSite: %v", err)
 	}
 	site.GoogleCN = googleCN
 
-	mux := registerHandlers(site)
+	mux := registerHandlers(fsys, site)
 
 	http.HandleFunc("/robots.txt", func(w http.ResponseWriter, r *http.Request) {
 		io.WriteString(w, "User-agent: *\nDisallow: /search\n")
@@ -142,7 +141,7 @@
 	}
 
 	if runningOnAppEngine {
-		appEngineSetup(mux)
+		appEngineSetup(site, mux)
 	} else {
 		// Register a redirect handler for /dl/ to the golang.org download page.
 		mux.Handle("/dl/", http.RedirectHandler("https://golang.org/dl/", http.StatusFound))
@@ -226,7 +225,7 @@
 	return nil, errOut
 }
 
-func appEngineSetup(mux *http.ServeMux) {
+func appEngineSetup(site *web.Site, mux *http.ServeMux) {
 	site.GoogleAnalytics = os.Getenv("GOLANGORG_ANALYTICS")
 
 	ctx := context.Background()
diff --git a/cmd/golangorg/release_test.go b/cmd/golangorg/release_test.go
index 4de944b..c74526f 100644
--- a/cmd/golangorg/release_test.go
+++ b/cmd/golangorg/release_test.go
@@ -19,15 +19,12 @@
 // It can be relaxed whenever the presentation of the release history
 // page needs to be changed.
 func TestReleaseHistory(t *testing.T) {
-	origFS, origPres := fsys, site
-	defer func() { fsys, site = origFS, origPres }()
-	fsys = website.Content
-	var err error
-	site, err = web.NewSite(fsys)
+	fsys := website.Content
+	site, err := web.NewSite(fsys)
 	if err != nil {
 		t.Fatal(err)
 	}
-	mux := registerHandlers(site)
+	mux := registerHandlers(fsys, site)
 
 	webtest.TestHandler(t, "testdata/release.txt", mux)
 }