Files
cybertron-log-enricher/configs/utils.go
2024-07-23 14:16:26 +05:30

64 lines
1.1 KiB
Go

package configs
import (
"cybertron/pkg/log"
"strconv"
"strings"
"github.com/spf13/viper"
)
func getInt(key string, required bool) int {
if required {
checkKey(key)
}
return viper.GetInt(key)
}
func getString(key string, required bool) string {
if required {
checkKey(key)
}
return viper.GetString(key)
}
func getBool(key string, required bool) bool {
if required {
checkKey(key)
}
return viper.GetBool(key)
}
func getFloatSlice(key string, required bool) []float64 {
stringValues := getStringSlice(key, required)
var floatValues []float64
for _, val := range stringValues {
floatVal, err := strconv.ParseFloat(val, 64)
if err != nil {
log.Panic("config value is not float type, err : " + err.Error())
}
floatValues = append(floatValues, floatVal)
}
return floatValues
}
func checkKey(key string) {
if !viper.IsSet(key) {
log.Panic("Missing key: " + key)
}
}
func getStringSlice(key string, required bool) []string {
if required {
checkKey(key)
}
stringValue := viper.GetString(key)
return strings.Split(stringValue, ",")
}