fuzzyworld

find-stone-beer / commit

Moved env-var logic to its own file.

8da39f4a289d19b633bfdf6ec3a8622850395420 · Pavel Safronov · 2023-08-27 00:55:46 -0700 · parents 59f699008833

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