43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
// 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
 | 
						|
}
 |