@ -20,30 +20,27 @@ type ConfigManager struct {
conf * globalconf . GlobalConf
conf * globalconf . GlobalConf
}
}
var Config * ConfigManager
// Read config
// Read config
//
//
// Initialize Config from Config File
// Initialize Config from Config File
func ReadConfig ( ConfigFile string , Datadir string , EnvPrefix string ) * ConfigManager {
func ReadConfig ( ConfigFile string , Datadir string , EnvPrefix string ) * ConfigManager {
if Config == nil {
if ! FileExist ( ConfigFile ) {
// create ConfigFile if does not exist, otherwise globalconf panic when trying to persist flags
// create ConfigFile if it does not exist, otherwise
if ! FileExist ( ConfigFile ) {
// globalconf will panic when trying to persist flags.
fmt . Printf ( "config file '%s' doesn't exist, creating it\n" , ConfigFile )
fmt . Printf ( "config file '%s' doesn't exist, creating it\n" , ConfigFile )
os . Create ( ConfigFile )
os . Create ( ConfigFile )
}
}
g , err := globalconf . NewWithOptions ( & globalconf . Options {
g , err := globalconf . NewWithOptions ( & globalconf . Options {
Filename : ConfigFile ,
Filename : ConfigFile ,
EnvPrefix : EnvPrefix ,
EnvPrefix : EnvPrefix ,
} )
} )
if err != nil {
if err != nil {
fmt . Println ( err )
fmt . Println ( err )
} else {
} else {
g . ParseAll ( )
g . ParseAll ( )
}
Config = & ConfigManager { ExecPath : Datadir , Debug : true , conf : g , Paranoia : true }
}
}
return Config
cfg := & ConfigManager { ExecPath : Datadir , Debug : true , conf : g , Paranoia : true }
return cfg
}
}
// provides persistence for flags
// provides persistence for flags