Add env parsing

This commit is contained in:
2024-10-15 23:34:46 +02:00
parent 38c7352675
commit 895d6776b8
5 changed files with 79 additions and 0 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
node_modules
frontend/dist
build
backend/.env
backend/plan

View File

@@ -1,3 +1,5 @@
module grapher-backend
go 1.23.2
require github.com/joho/godotenv v1.5.1

2
backend/go.sum Normal file
View File

@@ -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=

View File

@@ -0,0 +1,43 @@
package main
import (
"flag"
"fmt"
"io"
"log"
"os"
)
var Error *log.Logger
var Warning *log.Logger
func init() {
log.SetFlags(log.Lmicroseconds | log.Lshortfile)
logFile, err := os.Create("main.log")
if err != nil {
log.Printf("Error creating log file: %v", err)
return
}
logger := io.MultiWriter(os.Stdout, logFile)
log.SetOutput(logger)
Error = log.New(io.MultiWriter(logFile, os.Stderr, os.Stdout),
fmt.Sprintf("%sERROR:%s ", "\033[0;101m", "\033[0m"),
log.Lmicroseconds|log.Lshortfile)
Warning = log.New(io.MultiWriter(logFile, os.Stdout),
fmt.Sprintf("%sWarning:%s ", "\033[0;93m", "\033[0m"),
log.Lmicroseconds|log.Lshortfile)
}
var env map[string]string
func main() {
envfile := flag.String("envfile", ".env", "")
flag.Parse()
var err error
env, err = LoadEnv(*envfile)
if err != nil {
Error.Printf("Error leading env file: %v", err)
return
}
}

30
backend/utils.go Normal file
View File

@@ -0,0 +1,30 @@
package main
import (
"fmt"
"log"
"os"
"path/filepath"
"github.com/joho/godotenv"
)
func LoadEnv(fpath string) (map[string]string, error) {
res := make(map[string]string)
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
}