package env import ( "errors" "os" "strconv" "strings" _ "github.com/joho/godotenv/autoload" ) func SanitizeEnv(envName string) (string, error) { if len(envName) == 0 { return "", errors.New("Environment Variable Name Should Not Empty") } retValue := strings.TrimSpace(os.Getenv(envName)) if len(retValue) == 0 { return "", errors.New("Environment Variable '" + envName + "' Has an Empty Value") } return retValue, nil } func GetEnvString(envName string) (string, error) { envValue, err := SanitizeEnv(envName) if err != nil { return "", err } return envValue, nil } func GetEnvBool(envName string) (bool, error) { envValue, err := SanitizeEnv(envName) if err != nil { return false, err } retValue, err := strconv.ParseBool(envValue) if err != nil { return false, err } return retValue, nil } func GetEnvInt(envName string) (int, error) { envValue, err := SanitizeEnv(envName) if err != nil { return 0, err } retValue, err := strconv.ParseInt(envValue, 0, 0) if err != nil { return 0, err } return int(retValue), nil } func GetEnvFloat32(envName string) (float32, error) { envValue, err := SanitizeEnv(envName) if err != nil { return 0, err } retValue, err := strconv.ParseFloat(envValue, 32) if err != nil { return 0, err } return float32(retValue), nil } func GetEnvFloat64(envName string) (float64, error) { envValue, err := SanitizeEnv(envName) if err != nil { return 0, err } retValue, err := strconv.ParseFloat(envValue, 64) if err != nil { return 0, err } return float64(retValue), nil }