--- /dev/null
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package golangorgenv provides environment information for programs running at
+// golang.org and its subdomains.
+package golangorgenv
+
+import (
+ "log"
+ "os"
+ "strconv"
+)
+
+var (
+ checkCountry = boolEnv("GOLANGORG_CHECK_COUNTRY")
+ enforceHosts = boolEnv("GOLANGORG_ENFORCE_HOSTS")
+)
+
+// CheckCountry reports whether country restrictions should be enforced.
+func CheckCountry() bool {
+ return checkCountry
+}
+
+// EnforceHosts reports whether host filtering should be enforced.
+func EnforceHosts() bool {
+ return enforceHosts
+}
+
+func boolEnv(key string) bool {
+ v := os.Getenv(key)
+ if v == "" {
+ // TODO(dmitshur): In the future, consider detecting if running in App Engine,
+ // and if so, making the environment variables mandatory rather than optional.
+ return false
+ }
+ b, err := strconv.ParseBool(v)
+ if err != nil {
+ log.Fatalf("environment variable %s (%q) must be a boolean", key, v)
+ }
+ return b
+}