Compare commits

...

2 Commits

Author SHA1 Message Date
895d6776b8 Add env parsing 2024-10-15 23:34:46 +02:00
38c7352675 Add backend 2024-10-15 22:55:55 +02:00
5 changed files with 82 additions and 0 deletions

2
.gitignore vendored
View File

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

5
backend/go.mod Normal file
View File

@@ -0,0 +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=

43
backend/main.go Normal file
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
}