find-stone-beer / commit
Moved env-var logic to its own file.
env-vars.go | 42 ++++++++++++++++++++++++++++++++++++++++++ main.go | 40 +++------------------------------------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/env-vars.go b/env-vars.go new file mode 100644 index 0000000..ec30ff7 --- /dev/null +++ b/env-vars.go @@ -0,0 +1,42 @@ +package main + +import ( + "fmt" + "os" + "strconv" + + "github.com/jftuga/geodist" +) + +func GetEnvVarInteger(envVarName string, defaultIfNotSet int) int { + envVarValue := os.Getenv(envVarName) + if envVarValue == "" { + // fmt.Printf("Environment variable %s not set, using default value of %d\n", envVarName, defaultIfNotSet) + return defaultIfNotSet + } + intValue, err := strconv.Atoi(envVarValue) + if err != nil { + // fmt.Printf("Could not parse environment variable %s as integer: %s, using default value of %d\n", envVarName, err, defaultIfNotSet) + return defaultIfNotSet + } + // fmt.Printf("Using environment variable %s value of %d\n", envVarName, intValue) + return intValue +} + +func GetCoordsFromEnvVars() (geodist.Coord, error) { + latStr, latPresent := os.LookupEnv(COORDINATE_LAT_ENV_VAR) + lonStr, lonPresent := os.LookupEnv(COORDINATE_LON_ENV_VAR) + if !latPresent || !lonPresent { + return geodist.Coord{}, fmt.Errorf("missing environment variable %s or %s", COORDINATE_LAT_ENV_VAR, COORDINATE_LON_ENV_VAR) + } + lat, err := strconv.ParseFloat(latStr, 64) + if err != nil { + return geodist.Coord{}, err + } + lon, err := strconv.ParseFloat(lonStr, 64) + if err != nil { + return geodist.Coord{}, err + } + coords := geodist.Coord{Lat: lat, Lon: lon} + return coords, nil +} diff --git a/main.go b/main.go index 30a8867..5a202fe 100644 --- a/main.go +++ b/main.go @@ -7,7 +7,6 @@ import ( "net/http" "os" "path/filepath" - "strconv" "strings" "time" @@ -31,14 +30,14 @@ const ( func main() { // coords for search area - coords, err := getCoordsFromEnvVars() + coords, err := GetCoordsFromEnvVars() if err != nil { panic(err) } // load other settings from env vars - var rangeMiles = getEnvVarInteger(RANGE_MILES_ENV_VAR, 15) - var maxDeliveryWindowDays = getEnvVarInteger(MAX_DELIVERY_DAYS_ENV_VAR, 14) + var rangeMiles = GetEnvVarInteger(RANGE_MILES_ENV_VAR, 15) + var maxDeliveryWindowDays = GetEnvVarInteger(MAX_DELIVERY_DAYS_ENV_VAR, 14) // descriptions of the beers and packaging beersInfo, err := GetBeersInfo() @@ -156,39 +155,6 @@ func getGoogleMapsLink(coords geodist.Coord) string { return fmt.Sprintf("https://www.google.com/maps/search/?api=1&query=%f,%f", coords.Lat, coords.Lon) } -func getEnvVarInteger(envVarName string, defaultIfNotSet int) int { - envVarValue := os.Getenv(envVarName) - if envVarValue == "" { - // fmt.Printf("Environment variable %s not set, using default value of %d\n", envVarName, defaultIfNotSet) - return defaultIfNotSet - } - intValue, err := strconv.Atoi(envVarValue) - if err != nil { - // fmt.Printf("Could not parse environment variable %s as integer: %s, using default value of %d\n", envVarName, err, defaultIfNotSet) - return defaultIfNotSet - } - // fmt.Printf("Using environment variable %s value of %d\n", envVarName, intValue) - return intValue -} - -func getCoordsFromEnvVars() (geodist.Coord, error) { - latStr, latPresent := os.LookupEnv(COORDINATE_LAT_ENV_VAR) - lonStr, lonPresent := os.LookupEnv(COORDINATE_LON_ENV_VAR) - if !latPresent || !lonPresent { - return geodist.Coord{}, fmt.Errorf("missing environment variable %s or %s", COORDINATE_LAT_ENV_VAR, COORDINATE_LON_ENV_VAR) - } - lat, err := strconv.ParseFloat(latStr, 64) - if err != nil { - return geodist.Coord{}, err - } - lon, err := strconv.ParseFloat(lonStr, 64) - if err != nil { - return geodist.Coord{}, err - } - coords := geodist.Coord{Lat: lat, Lon: lon} - return coords, nil -} - func getCachedUrl(url string, id string, cacheFileTimeFormat string) ([]byte, error) { return getCachedUrlFunc(url, id, cacheFileTimeFormat, func(bytes []byte) ([]byte, error) { return bytes, nil