Documentation ¶
Overview ¶
Package configurable exposes methods for initializing configuration structs.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitConfig ¶
func InitConfig(config Configurable)
Initializes the configuration
Example (DefaultIsAppliedIfThereIsNoEnvVar) ¶
package main import ( "fmt" "os" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type mockTestConfig struct { configurable.BasicConfiguration MyFieldFromEnvWithDefault string `envconfig:"MY_WINNING_ENV_VAR" default:"defaulted"` } os.Unsetenv("MY_WINNING_ENV_VAR") config := &mockTestConfig{} configurable.InitConfig(config) fmt.Println(config.MyFieldFromEnvWithDefault) }
Output: defaulted
Example (EnvironmentValueWinsEvenIfThereIsAlsoDefault) ¶
package main import ( "fmt" "os" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type mockTestConfig struct { configurable.BasicConfiguration MyFieldFromEnvWithDefault string `envconfig:"MY_WINNING_ENV_VAR" default:"defaulted"` } expectedString := "my expected string" os.Setenv("MY_WINNING_ENV_VAR", expectedString) defer os.Unsetenv("MY_WINNING_ENV_VAR") config := &mockTestConfig{} configurable.InitConfig(config) fmt.Println(config.MyFieldFromEnvWithDefault) }
Output: my expected string
Example (InitializesFieldFromEnvironment) ¶
package main import ( "fmt" "os" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type mockTestConfig struct { configurable.BasicConfiguration MyFieldFromEnv string `envconfig:"MY_ENV_VAR"` } expectedString := "my expected string" os.Setenv("MY_ENV_VAR", expectedString) defer os.Unsetenv("MY_ENV_VAR") config := &mockTestConfig{} configurable.InitConfig(config) fmt.Println(config.MyFieldFromEnv) }
Output: my expected string
Example (InitializesFieldWithDefault) ¶
package main import ( "fmt" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type mockTestConfig struct { configurable.BasicConfiguration MyFieldWithDefault string `default:"mydefault"` } config := &mockTestConfig{} configurable.InitConfig(config) fmt.Println(config.MyFieldWithDefault) }
Output: mydefault
Example (InitializesFieldWithoutDefault) ¶
package main import ( "fmt" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type mockTestConfig struct { configurable.BasicConfiguration MyFieldWithoutDefault string } config := &mockTestConfig{} configurable.InitConfig(config) fmt.Println(config.MyFieldWithoutDefault) }
Output:
Types ¶
type BasicConfiguration ¶
type BasicConfiguration struct { }
BasicConfiguration is the default configuration
Example ¶
package main import ( "fmt" "gopkg.in/src-d/framework.v0/configurable" ) func main() { type complexConfiguration struct { configurable.BasicConfiguration Value string `default:"hola"` } config := &complexConfiguration{} configurable.InitConfig(config) fmt.Println(config.Value) }
Output: hola
var ( // Initialized BasicConfiguration Config *BasicConfiguration = &BasicConfiguration{} )
func (*BasicConfiguration) Init ¶
func (c *BasicConfiguration) Init()
Init initializes BasicConfiguration
type Configurable ¶
type Configurable interface {
Init()
}
Configurable allows InitConfig to properly configure the config struct using environment variables and default values.
Click to show internal directories.
Click to hide internal directories.