Load Local Environment

This commit is contained in:
Janic Voser 2022-10-24 23:43:29 +02:00
parent 91c2cb2c9e
commit e9fb08f2ca
12 changed files with 224 additions and 0 deletions

8
src/api/go.mod Normal file
View File

@ -0,0 +1,8 @@
module api
go 1.19
require (
github.com/go-sql-driver/mysql v1.6.0
github.com/joho/godotenv v1.4.0
)

4
src/api/go.sum Normal file
View File

@ -0,0 +1,4 @@
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=
github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=

View File

@ -0,0 +1,18 @@
package helper
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
// docker run --name mysqldb -e MYSQL_ROOT_PASSWORD=rootpw -p 3307:3306 -d mysql:latest
func ConnectDB() {
db_string := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", Db_User, Db_Pass, Db_Host, Db_Port, Db_Default_Db)
Db, err := sql.Open("mysql", db_string)
if err != nil {
LogErrorFatal(err)
}
defer Db.Close()
}

View File

@ -0,0 +1,42 @@
package helper
import (
"log"
"os"
"github.com/joho/godotenv"
)
func Loadenv() {
GetConfigFile()
err := godotenv.Load()
LogErrorWarning(err)
}
func GetConfigFile() {
dotenv_exists := FileExists(".env")
if dotenv_exists {
godotenv.Load(".env")
LogInfo(".env file found, using prefered values")
} else {
LogInfo("No .env file found, using default values")
}
GetDefaults()
}
func Set_logfile() {
f, err := os.OpenFile(Log_file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening file: %v", err)
}
defer f.Close()
log.SetOutput(f)
}
func FileExists(filename string) bool {
info, err := os.Stat(filename)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
}

View File

@ -0,0 +1,21 @@
package helper
import "log"
func LogErrorWarning(err error) {
if err != nil {
log.Printf("WARNING: %v \n", err)
}
}
func LogErrorFatal(err error) {
if err != nil {
log.Fatalf("ERROR: %v \n", err)
}
}
func LogInfo(info string) {
if info != "" {
log.Printf("INFO: %v \n", info)
}
}

View File

@ -0,0 +1,72 @@
package helper
import "os"
func GetDefaults() {
// Gin Variables
// Set IP
env_ip, present := os.LookupEnv("LISTEN_IP")
if present {
Ip = env_ip
} else {
Ip = default_ip
}
// Set Port
env_port, present := os.LookupEnv("LISTEN_PORT")
if present {
Http_port = env_port
} else {
Http_port = default_port
}
// Log Variables
// Set Logfile
env_log_file, present := os.LookupEnv("LOG_FILE")
if present {
Log_file = env_log_file
} else {
Log_file = default_log_file
}
// Set Gin log file
env_gin_log_file, present := os.LookupEnv("GIN_LOG_FILE")
if present {
Gin_log_file = env_gin_log_file
} else {
Gin_log_file = default_gin_log_file
}
// DB Variables
// Set DB User
env_db_user, present := os.LookupEnv("DB_USER")
if present {
Db_User = env_db_user
} else {
Db_User = default_DB_User
}
// Set DB Password
env_db_pass, present := os.LookupEnv("DB_PASSWORD")
if present {
Db_Pass = env_db_pass
} else {
Db_Pass = default_DB_Pass
}
// Set DB Port
env_db_port, present := os.LookupEnv("DB_PORT")
if present {
Db_Port = env_db_port
} else {
Db_Port = default_DB_Port
}
// Set DB Host
env_db_host, present := os.LookupEnv("DB_HOST")
if present {
Db_Host = env_db_host
} else {
Db_Host = default_DB_Host
}
// Set DB Default Database
env_db_default_db, present := os.LookupEnv("DB_DEFAULT_DATABASE")
if present {
Db_Default_Db = env_db_default_db
} else {
Db_Default_Db = default_DB_Default_db
}
}

View File

@ -0,0 +1,5 @@
package helper
import "database/sql"
var Db *sql.DB

View File

@ -0,0 +1,33 @@
package helper
// Default Vars
// --- Default Gin Vars ---
var default_port string = "8081"
var default_ip string = "0.0.0.0"
// --- Default Log Vars ---
var default_log_file string = "/var/log/gonodeinfo.log"
var default_gin_log_file string = "/var/log/gonodeinfo.gin.log"
// --- Default DB Vars ---
var default_DB_User string = "root"
var default_DB_Pass string = "rootpw"
var default_DB_Host string = "127.0.0.1"
var default_DB_Port string = "3307"
var default_DB_Default_db string = "sys"
// Vars
// --- Gin Vars ---
var Http_port string
var Ip string
// --- Log Vars ---
var Log_file string
var Gin_log_file string
// --- DB Vars ---
var Db_User string
var Db_Pass string
var Db_Host string
var Db_Port string
var Db_Default_Db string

9
src/api/main.go Normal file
View File

@ -0,0 +1,9 @@
package main
import (
helper "api/helper"
)
func main() {
helper.Loadenv()
}

5
src/api/test/main.go Normal file
View File

@ -0,0 +1,5 @@
package main
func main() {
Test()
}

7
src/api/test/test.go Normal file
View File

@ -0,0 +1,7 @@
package main
import "fmt"
func Test() {
fmt.Println("test")
}

0
src/templates/.env.j2 Normal file
View File