github.com/SimplyVC/oasis_api_server/src@v0.0.0-20220105202803-ad2c5a67840e/config/config.go (about) 1 package config 2 3 import ( 4 "github.com/claudetech/ini" 5 6 lgr "github.com/SimplyVC/oasis_api_server/src/logger" 7 ) 8 9 // Variables to be exported and used by application, set with default values 10 var ( 11 confMain ini.Config 12 confNodes ini.Config 13 confSentry ini.Config 14 mainConfigFile = "../config/user_config_main.ini" 15 nodesFile = "../config/user_config_nodes.ini" 16 sentryFile = "../config/user_config_sentry.ini" 17 ) 18 19 // SetSentryFile sets file location containing sentry data 20 func SetSentryFile(newFile string) { 21 sentryFile = newFile 22 } 23 24 // SetMainFile sets file location containing API configuration 25 func SetMainFile(newFile string) { 26 mainConfigFile = newFile 27 } 28 29 // SetNodesFile sets file location containing Node configuration 30 func SetNodesFile(newFile string) { 31 nodesFile = newFile 32 } 33 34 // GetSentryData returns Sentry configuration 35 func GetSentryData() map[string]map[string]string { 36 return confSentry 37 } 38 39 // GetMain returns Main API configuration 40 func GetMain() map[string]map[string]string { 41 return confMain 42 } 43 44 // GetNodes returns Nodes configuration 45 func GetNodes() map[string]map[string]string { 46 return confNodes 47 } 48 49 // LoadMainConfiguration loads main configuration file from config folder 50 func LoadMainConfiguration() (map[string]map[string]string, error) { 51 52 // Decode and read file containing Main API information 53 if err := ini.DecodeFile(mainConfigFile, &confMain); err != nil { 54 lgr.Error.Println(err) 55 return nil, err 56 } 57 return confMain, nil 58 } 59 60 // LoadNodesConfiguration loads node configuration file from config folder 61 func LoadNodesConfiguration() (map[string]map[string]string, error) { 62 63 // Decode and read file containing Node information 64 if err := ini.DecodeFile(nodesFile, &confNodes); err != nil { 65 lgr.Error.Println(err) 66 return nil, err 67 } 68 return confNodes, nil 69 } 70 71 // LoadSentryConfiguration loads sentry configuration details 72 func LoadSentryConfiguration() (map[string]map[string]string, error) { 73 74 // Decode and read file containing sentry information 75 if err := ini.DecodeFile(sentryFile, &confSentry); err != nil { 76 lgr.Error.Println(err) 77 return nil, err 78 } 79 return confSentry, nil 80 }