11package config
22
33import (
4+ "errors"
5+ "io/fs"
46 "os"
57 "strconv"
68 "strings"
7- "time"
89
910 middlewares "github.com/codeshelldev/secured-signal-api/internals/proxy/middlewares"
1011 utils "github.com/codeshelldev/secured-signal-api/utils"
11- "github.com/codeshelldev/secured-signal-api/utils/docker"
1212 log "github.com/codeshelldev/secured-signal-api/utils/logger"
1313
1414 "github.com/knadh/koanf/parsers/dotenv"
@@ -62,12 +62,25 @@ func LoadIntoENV() {
6262}
6363
6464func Load () {
65- log .Debug ("Loading Config " , ENV .DEFAULTS_PATH )
65+ log .Debug ("Loading Default Config " , ENV .DEFAULTS_PATH )
6666
67- LoadFile (ENV .DEFAULTS_PATH , yaml .Parser ())
67+ defErr := LoadFile (ENV .DEFAULTS_PATH , yaml .Parser ())
68+
69+ if defErr != nil {
70+ log .Warn ("Could not Load Defaults" , ENV .DEFAULTS_PATH )
71+ }
6872
6973 log .Debug ("Loading Config " , ENV .CONFIG_PATH )
70- LoadFile (ENV .CONFIG_PATH , yaml .Parser ())
74+
75+ conErr := LoadFile (ENV .CONFIG_PATH , yaml .Parser ())
76+
77+ if conErr != nil {
78+ _ , err := os .Stat (ENV .CONFIG_PATH )
79+
80+ if ! errors .Is (err , fs .ErrNotExist ) {
81+ log .Error ("Could not Load Config " , ENV .CONFIG_PATH , ": " , conErr .Error ())
82+ }
83+ }
7184
7285 log .Debug ("Loading DotEnv" )
7386 LoadDotEnv ()
@@ -79,17 +92,13 @@ func Load() {
7992 log .Info ("Finished Loading Configuration" )
8093}
8194
82- func LoadFile (path string , parser koanf.Parser ) ( * file. File ) {
95+ func LoadFile (path string , parser koanf.Parser ) error {
8396 f := file .Provider (path )
8497
8598 err := config .Load (f , parser )
8699
87100 if err != nil {
88- log .Error ("Error loading " , path , ": " , err .Error ())
89-
90- time .Sleep (10 * time .Second )
91-
92- docker .Exit (1 )
101+ return err
93102 }
94103
95104 f .Watch (func (event any , err error ) {
@@ -102,10 +111,10 @@ func LoadFile(path string, parser koanf.Parser) (*file.File) {
102111 Load ()
103112 })
104113
105- return f
114+ return err
106115}
107116
108- func LoadDotEnv () ( * env. Env ) {
117+ func LoadDotEnv () error {
109118 e := env .ProviderWithValue ("" , "." , normalizeEnv )
110119
111120 err := config .Load (e , dotenv .Parser ())
@@ -114,7 +123,7 @@ func LoadDotEnv() (*env.Env) {
114123 log .Fatal ("Error loading env: " , err .Error ())
115124 }
116125
117- return e
126+ return err
118127}
119128
120129func normalizeKeys () {
0 commit comments