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)
}