func NewConfigurationData(configFilePath string) (*ConfigurationData, error) {
	c := ConfigurationData{
		v: viper.New(),
	}
	c.v.SetEnvPrefix("ALMIGHTY")
	c.v.AutomaticEnv()
	c.v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
	c.v.SetTypeByDefaultValue(true)
	c.setConfigDefaults()

	if configFilePath != "" {
		c.v.SetConfigType("yaml")
		c.v.SetConfigFile(configFilePath)
		err := c.v.ReadInConfig() // Find and read the config file
		if err != nil {           // Handle errors reading the config file
			return nil, errors.Errorf("Fatal error config file: %s \n", err)
		}
	}
	return &c, nil
}
// NewConfigurationData creates a configuration reader object using a configurable configuration file path
NewConfigurationData creates a configuration reader object using a configurable configuration file path
// NewConfigurationData creates a configuration reader object using a configurable configuration file path
func NewConfigurationData(configFilePath string) (*ConfigurationData, error) {
	c := ConfigurationData{
		v: viper.New(),
	}
	c.v.SetEnvPrefix("ALMIGHTY")
	c.v.AutomaticEnv()
	c.v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
	c.v.SetTypeByDefaultValue(true)
	c.setConfigDefaults()
	if configFilePath != "" {
		c.v.SetConfigType("yaml")
		c.v.SetConfigFile(configFilePath)
		err := c.v.ReadInConfig() 
		if err != nil {           
			return nil, errors.Errorf("Fatal error config file: %s \n", err)
		}
	}
	return &c, nil
}
func NewConfigurationData ( configFilePath string ) ( * ConfigurationData , error ) { c := ConfigurationData { v : viper . New ( ) , } c . v . SetEnvPrefix ( " " ) c . v . AutomaticEnv ( ) c . v . SetEnvKeyReplacer ( strings . NewReplacer ( " " , " " ) ) c . v . SetTypeByDefaultValue ( true ) c . setConfigDefaults ( ) if configFilePath != " " { c . v . SetConfigType ( " " ) c . v . SetConfigFile ( configFilePath ) err := c . v . ReadInConfig ( ) if err != nil { return nil , errors . Errorf ( " \n " , err ) } } return & c , nil }
NewConfigurationData creates a configuration reader object using a configurable configuration file path
NewConfigurationData creates a configuration reader object using a configurable configuration file path
// Find and read the config file // Handle errors reading the config file