1
0
mirror of https://github.com/ManyakRus/starter.git synced 2025-12-05 00:12:51 +02:00
Files
starter/config_main/config_main.go

106 lines
3.2 KiB
Go
Raw Normal View History

2023-03-17 11:20:09 +03:00
// модуль для загрузки переменных окружения в структуру
2023-12-26 16:42:53 +03:00
package config_main
2023-03-17 11:20:09 +03:00
import (
2023-05-02 09:51:50 +03:00
"github.com/ManyakRus/starter/logger"
"github.com/ManyakRus/starter/micro"
2023-11-14 13:39:20 +03:00
"github.com/joho/godotenv"
2024-02-21 14:49:17 +03:00
"os"
2023-03-17 11:20:09 +03:00
//log "github.com/sirupsen/logrus"
//log "github.com/sirupsen/logrus"
//"gitlab.aescorp.ru/dsp_dev/notifier/notifier_adp_eml/internal/v0/app/types"
//"gitlab.aescorp.ru/dsp_dev/notifier/notifier_adp_eml/internal/v0/app/micro"
)
// log хранит используемый логгер
var log = logger.GetLog()
2023-11-10 13:01:08 +03:00
// LoadEnv - загружает из файла .env переменные в переменные окружения
2023-03-17 11:20:09 +03:00
func LoadEnv() {
2024-02-21 14:49:17 +03:00
dir := micro.ProgramDir()
filename := dir + ".env"
LoadEnv_from_file(filename)
}
2023-03-17 11:20:09 +03:00
2024-02-21 14:49:17 +03:00
// LoadEnvTest - загружает из файла .env переменные в переменные окружения, кроме для STAGE=dev или prod
// для модулей тестирования _test.go
func LoadEnvTest() {
2023-03-17 11:20:09 +03:00
dir := micro.ProgramDir()
filename := dir + ".env"
2024-02-21 14:49:17 +03:00
//не загружаем для STAGE=dev, т.к. переменные окружения кубернетеса
stage := os.Getenv("STAGE")
if stage == "dev" || stage == "prod" {
log.Info("LoadEnv() ignore STAGE: dev, filename: ", filename)
return
}
//
2023-03-17 11:20:09 +03:00
LoadEnv_from_file(filename)
}
2023-11-10 13:01:08 +03:00
// LoadEnv - загружает из файла .env переменные в переменные окружения, возвращает ошибку
func LoadEnv_err() error {
var err error
dir := micro.ProgramDir()
filename := dir + ".env"
err = LoadEnv_from_file_err(filename)
return err
}
// LoadSettingsTxt - загружает из файла settings.txt переменные в переменные окружения
func LoadSettingsTxt() {
dir := micro.ProgramDir()
filename := dir + "settings.txt"
LoadEnv_from_file(filename)
}
// LoadSettingsTxt_err - загружает из файла settings.txt переменные в переменные окружения, возвращает ошибку
func LoadSettingsTxt_err() error {
var err error
dir := micro.ProgramDir()
filename := dir + "settings.txt"
err = LoadEnv_from_file_err(filename)
return err
}
// LoadEnv_from_file загружает из файла переменные в переменные окружения
2023-03-17 11:20:09 +03:00
func LoadEnv_from_file(filename string) {
2023-11-10 13:01:08 +03:00
FilenameShort := micro.LastWord(filename)
err := LoadEnv_from_file_err(filename)
2023-03-17 11:20:09 +03:00
if err != nil {
2023-11-10 13:01:08 +03:00
log.Debug("Can not parse "+FilenameShort+" file: ", filename, " warning: "+err.Error())
2023-03-17 11:20:09 +03:00
} else {
2023-11-10 13:01:08 +03:00
log.Info("load "+FilenameShort+" from file: ", filename)
2023-03-17 11:20:09 +03:00
}
2023-11-10 13:01:08 +03:00
}
// LoadEnv_from_file загружает из файла переменные в переменные окружения, возвращает ошибку
func LoadEnv_from_file_err(filename string) error {
var err error
2023-03-17 11:20:09 +03:00
2023-11-10 13:01:08 +03:00
err = godotenv.Load(filename)
2023-03-17 11:20:09 +03:00
2023-11-10 13:01:08 +03:00
return err
2023-03-17 11:20:09 +03:00
}
2023-11-14 15:48:45 +03:00
// LoadENV_or_SettingsTXT - загружает из файла .env или settings.txt переменные в переменные окружения
func LoadENV_or_SettingsTXT() {
errENV := LoadEnv_err()
var err2 error
if errENV != nil {
err2 = LoadSettingsTxt_err()
}
if err2 != nil {
log.Panic("LoadENV_or_SettingsTXT() error: ", err2)
}
}