mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 22:22:25 -05:00 
			
		
		
		
	
		
			
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | /* | ||
|  |  * | ||
|  |  * Copyright 2018 gRPC authors. | ||
|  |  * | ||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  |  * you may not use this file except in compliance with the License. | ||
|  |  * You may obtain a copy of the License at | ||
|  |  * | ||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||
|  |  * | ||
|  |  * Unless required by applicable law or agreed to in writing, software | ||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  |  * See the License for the specific language governing permissions and | ||
|  |  * limitations under the License. | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | // Package envconfig contains grpc settings configured by environment variables. | ||
|  | package envconfig | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"os" | ||
|  | 	"strconv" | ||
|  | 	"strings" | ||
|  | ) | ||
|  | 
 | ||
|  | var ( | ||
|  | 	// TXTErrIgnore is set if TXT errors should be ignored ("GRPC_GO_IGNORE_TXT_ERRORS" is not "false"). | ||
|  | 	TXTErrIgnore = boolFromEnv("GRPC_GO_IGNORE_TXT_ERRORS", true) | ||
|  | 	// AdvertiseCompressors is set if registered compressor should be advertised | ||
|  | 	// ("GRPC_GO_ADVERTISE_COMPRESSORS" is not "false"). | ||
|  | 	AdvertiseCompressors = boolFromEnv("GRPC_GO_ADVERTISE_COMPRESSORS", true) | ||
|  | 	// RingHashCap indicates the maximum ring size which defaults to 4096 | ||
|  | 	// entries but may be overridden by setting the environment variable | ||
|  | 	// "GRPC_RING_HASH_CAP".  This does not override the default bounds | ||
|  | 	// checking which NACKs configs specifying ring sizes > 8*1024*1024 (~8M). | ||
|  | 	RingHashCap = uint64FromEnv("GRPC_RING_HASH_CAP", 4096, 1, 8*1024*1024) | ||
|  | ) | ||
|  | 
 | ||
|  | func boolFromEnv(envVar string, def bool) bool { | ||
|  | 	if def { | ||
|  | 		// The default is true; return true unless the variable is "false". | ||
|  | 		return !strings.EqualFold(os.Getenv(envVar), "false") | ||
|  | 	} | ||
|  | 	// The default is false; return false unless the variable is "true". | ||
|  | 	return strings.EqualFold(os.Getenv(envVar), "true") | ||
|  | } | ||
|  | 
 | ||
|  | func uint64FromEnv(envVar string, def, min, max uint64) uint64 { | ||
|  | 	v, err := strconv.ParseUint(os.Getenv(envVar), 10, 64) | ||
|  | 	if err != nil { | ||
|  | 		return def | ||
|  | 	} | ||
|  | 	if v < min { | ||
|  | 		return min | ||
|  | 	} | ||
|  | 	if v > max { | ||
|  | 		return max | ||
|  | 	} | ||
|  | 	return v | ||
|  | } |