// Copyright © 2023 OpenIM. All rights reserved. // // 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 zookeeper import ( "os" "strings" ) // getEnv returns the value of an environment variable if it exists, otherwise it returns the fallback value. func getEnv(key, fallback string) string { if value, exists := os.LookupEnv(key); exists { return value } return fallback } // getZkAddrFromEnv returns the Zookeeper addresses combined from the ZOOKEEPER_ADDRESS and ZOOKEEPER_PORT environment variables. // If the environment variables are not set, it returns the fallback value. func getZkAddrFromEnv(fallback []string) []string { address, addrExists := os.LookupEnv("ZOOKEEPER_ADDRESS") port, portExists := os.LookupEnv("ZOOKEEPER_PORT") if addrExists && portExists { addresses := strings.Split(address, ",") for i, addr := range addresses { addresses[i] = addr + ":" + port } return addresses } return fallback }