Use .env in combination with normal env

This commit is contained in:
Jan Zípek 2022-08-14 23:51:32 +02:00
parent 9856496b5c
commit 4342adc195
Signed by: kamen
GPG Key ID: A17882625B33AC31
4 changed files with 20 additions and 10 deletions

View File

@ -2,8 +2,7 @@ package config
import ( import (
"os" "os"
"strconv"
"github.com/golobby/dotenv"
) )
type Config struct { type Config struct {
@ -16,18 +15,19 @@ type Config struct {
} }
func LoadConfig() *Config { func LoadConfig() *Config {
config := Config{} port, err := strconv.Atoi(os.Getenv("PORT"))
file, err := os.Open(".env")
if err != nil { if err != nil {
panic(err) panic(err)
} }
err = dotenv.NewDecoder(file).Decode(&config) config := Config{
Mode: os.Getenv("GIN_MODE"),
if err != nil { DatabaseUrl: os.Getenv("DATABASE_URL"),
panic(err) Port: port,
Ip: os.Getenv("BIND_IP"),
AuthUsername: os.Getenv("AUTH_USERNAME"),
AuthPassword: os.Getenv("AUTH_PASSWORD"),
} }
return &config return &config

3
go.mod
View File

@ -1,10 +1,11 @@
module basic-sensor-receiver module basic-sensor-receiver
go 1.17 go 1.19
require ( require (
github.com/gin-gonic/gin v1.8.1 github.com/gin-gonic/gin v1.8.1
github.com/golobby/dotenv v1.3.1 github.com/golobby/dotenv v1.3.1
github.com/joho/godotenv v1.4.0
github.com/mattn/go-sqlite3 v1.14.14 github.com/mattn/go-sqlite3 v1.14.14
) )

2
go.sum
View File

@ -25,6 +25,8 @@ github.com/golobby/dotenv v1.3.1 h1:BvQyNuOQITmIXNHpQ/FUG2gZcUGmcGMyODMeUfiKkeU=
github.com/golobby/dotenv v1.3.1/go.mod h1:EWUdOzuDlA1g4hdjo++WD37DhNZw33Oce8ryH3liZTQ= github.com/golobby/dotenv v1.3.1/go.mod h1:EWUdOzuDlA1g4hdjo++WD37DhNZw33Oce8ryH3liZTQ=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=
github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=

View File

@ -4,12 +4,19 @@ import (
"basic-sensor-receiver/app" "basic-sensor-receiver/app"
"basic-sensor-receiver/routes" "basic-sensor-receiver/routes"
"fmt" "fmt"
"log"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/joho/godotenv"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
) )
func main() { func main() {
err := godotenv.Load()
if err != nil {
log.Println("Error loading .env file")
}
server := app.InitializeServer() server := app.InitializeServer()
gin.SetMode(server.Config.Mode) gin.SetMode(server.Config.Mode)