From b8779ba8dd0040ff20600504cdd6ea00463653bb Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 7 Sep 2024 16:38:15 +0200 Subject: [PATCH] Add env loading --- .gitignore | 1 + go.mod | 2 ++ go.sum | 2 ++ main.go | 35 ++++++++++++++++++++++++++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 go.sum diff --git a/.gitignore b/.gitignore index ce935dc..3d5992b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ steamcmd +.env diff --git a/go.mod b/go.mod index 5c09fd1..730a4c0 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,5 @@ module steamcmd-api go 1.23.0 + +require github.com/joho/godotenv v1.5.1 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..d61b19e --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= diff --git a/main.go b/main.go index 08f9b04..570098a 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,8 @@ import ( "log" "os" "path/filepath" + + "github.com/joho/godotenv" ) var Error *log.Logger @@ -25,6 +27,11 @@ func init() { log.Lmicroseconds|log.Lshortfile) } +const ( + steamcmdEnvKey = "STEAMCMD" + appEnvKey = "APP" +) + func main() { envfile := flag.String("envfile", ".env", "") flag.Parse() @@ -34,7 +41,22 @@ func main() { Error.Printf("Error leading env file: %v", err) return } - log.Printf("%#v", env) + + steamcmdexe, ok := env[steamcmdEnvKey] + if !ok { + Error.Printf("SteamCMD not found in env, please specify %s", steamcmdEnvKey) + return + } + + app, ok := env[appEnvKey] + if !ok { + Error.Printf("App not found in env, please specify %s", appEnvKey) + return + } + + args := flag.Args() + log.Printf("Using steamcmd at %s", steamcmdexe) + log.Printf("Downloading %d items for %s", len(args), app) } func loadEnv(fpath string) (map[string]string, error) { @@ -43,5 +65,16 @@ func loadEnv(fpath string) (map[string]string, error) { fpath = filepath.Clean(fpath) log.Printf("Trying to open env file at %s", fpath) + file, err := os.Open(fpath) + if err != nil { + return res, fmt.Errorf("error opening env file: %w", err) + } + defer file.Close() + + res, err = godotenv.Parse(file) + if err != nil { + return res, fmt.Errorf("error parsing env file: %w", err) + } + return res, nil }