From c0ce2e53fad3ba33208fd3f1ca4c7376a82e2913 Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Mon, 14 Mar 2022 20:26:43 +1100 Subject: [PATCH] Use env to inject parameters just to make it simple --- main.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 2499d53..83cf3db 100644 --- a/main.go +++ b/main.go @@ -3,16 +3,22 @@ package main import ( "fmt" "os" + "strconv" "github.com/wahyd4/mryum/calculator" ) -const ( - filePath = "./testx3.txt" - topNumber = 4 +var ( + filePath = getEnvWithDefault("INPUT", "./test3.txt") + topNumber = getEnvWithDefault("TOPX", "3") ) func main() { + topNumber, err := strconv.Atoi(topNumber) + if err != nil { + fmt.Println("TOPX must be a number") + } + topNumbers, err := calculator.CalculateLargestNumbers(filePath, topNumber) if err != nil { fmt.Println("Oops: " + err.Error()) @@ -20,3 +26,11 @@ func main() { } fmt.Printf("Top %d numbers are: %v", topNumber, topNumbers) } + +func getEnvWithDefault(key, defaultValue string) string { + value := os.Getenv(key) + if value == "" { + return defaultValue + } + return value +}