本文整理汇总了Golang中github.com/ardanlabs/kit/cfg.Init函数的典型用法代码示例。如果您正苦于以下问题:Golang Init函数的具体用法?Golang Init怎么用?Golang Init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Init函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
if err := cfg.Init(cfg.EnvProvider{Namespace: cfgNamespace}); err != nil {
kit.Println("Unable to initialize configuration")
os.Exit(1)
}
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.NONE
}
return ll
}
log.Init(os.Stderr, logLevel)
cfg := mongo.Config{
Host: cfg.MustString(cfgMongoHost),
AuthDB: cfg.MustString(cfgMongoAuthDB),
DB: cfg.MustString(cfgMongoDB),
User: cfg.MustString(cfgMongoUser),
Password: cfg.MustString(cfgMongoPassword),
}
if err := db.RegMasterSession("startup", cfg.DB, cfg); err != nil {
kit.Println("Unable to initialize MongoDB")
os.Exit(1)
}
kit.AddCommand(
cmdauth.GetCommands(cfg.DB),
cmddb.GetCommands(cfg.DB),
)
kit.Execute()
}
示例2: ExampleDev
// ExampleDev shows how to use the config package.
func ExampleDev() {
// Set up some basic environment variables.
os.Setenv("DOCK_IP", "40.23.233.10")
os.Setenv("DOCK_PORT", "4044")
os.Setenv("DOCK_INIT_STAMP", time.Date(2009, time.November,
10, 15, 0, 0, 0, time.UTC).UTC().Format(time.UnixDate))
os.Setenv("DOCK_FLAG", "true")
// Init() must be called only once with the given namespace to load.
cfg.Init("DOCK")
// To get the ip.
fmt.Println(cfg.MustString("IP"))
// To get the port number.
fmt.Println(cfg.MustInt("PORT"))
// To get the timestamp.
fmt.Println(cfg.MustTime("INIT_STAMP"))
// To get the flag.
fmt.Println(cfg.MustBool("FLAG"))
// Output:
// 40.23.233.10
// 4044
// 2009-11-10 15:00:00 +0000 UTC
// true
}
示例3: TestNotExists
// TestNotExists validates the ability to load configuration values
// using the OS-level environment variables and panic when something
// is missing.
func TestNotExists(t *testing.T) {
t.Log("Given the need to panic when environment variables are missing.")
{
os.Setenv("MYAPP_PROC_ID", "322")
os.Setenv("MYAPP_SOCKET", "./tmp/sockets.po")
os.Setenv("MYAPP_PORT", "4034")
os.Setenv("MYAPP_FLAG", "true")
cfg.Init("MYAPP")
t.Log("\tWhen given a namspace key to search for that does NOT exist.")
{
shouldPanic(t, "STAMP", func() {
cfg.MustTime("STAMP")
})
shouldPanic(t, "PID", func() {
cfg.MustInt("PID")
})
shouldPanic(t, "DEST", func() {
cfg.MustString("DEST")
})
shouldPanic(t, "ACTIVE", func() {
cfg.MustBool("ACTIVE")
})
shouldPanic(t, "SOCKET_DSN", func() {
cfg.MustURL("SOCKET_DSN")
})
}
}
}
示例4: Init
// Init is called to initialize the application.
func Init(configKey string) {
// Init the configuration system.
if err := cfg.Init(cfg.EnvProvider{Namespace: configKey}); err != nil {
fmt.Println("Error initalizing configuration system", err)
os.Exit(1)
}
// Init the log system.
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.USER
}
return ll
}
log.Init(os.Stderr, logLevel)
// Log all the configuration options
log.User("startup", "Init", "\n\nConfig Settings: %s\n%s\n", configKey, cfg.Log())
// Load user defined custom headers. HEADERS should be key:value,key:value
if hs, err := cfg.String("HEADERS"); err == nil {
hdrs := strings.Split(hs, ",")
for _, hdr := range hdrs {
if kv := strings.Split(hdr, ":"); len(kv) == 2 {
log.User("startup", "Init", "User Headers : %s:%s", kv[0], kv[1])
app.userHeaders[kv[0]] = kv[1]
}
}
}
}
示例5: ExampleDev
// ExampleDev shows how to use the config package.
func ExampleDev() {
// Init() must be called only once with the given namespace to load.
cfg.Init(cfg.MapProvider{
Map: map[string]string{
"IP": "40.23.233.10",
"PORT": "4044",
"INIT_STAMP": time.Date(2009, time.November,
10, 15, 0, 0, 0, time.UTC).UTC().Format(time.UnixDate),
"FLAG": "on",
},
})
// To get the ip.
fmt.Println(cfg.MustString("IP"))
// To get the port number.
fmt.Println(cfg.MustInt("PORT"))
// To get the timestamp.
fmt.Println(cfg.MustTime("INIT_STAMP"))
// To get the flag.
fmt.Println(cfg.MustBool("FLAG"))
// Output:
// 40.23.233.10
// 4044
// 2009-11-10 15:00:00 +0000 UTC
// true
}
示例6: main
func main() {
// Initialize the configuration
if err := cfg.Init(cfg.EnvProvider{Namespace: "SPONGE"}); err != nil {
sponge.Println("Unable to initialize configuration")
os.Exit(1)
}
// Initialize the logging
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.NONE
}
return ll
}
log.Init(os.Stderr, logLevel, log.Ldefault)
sponge.Println("Using log level", logLevel())
// Add the item commands to the CLI tool.
sponge.AddCommand(
cmditem.GetCommands(),
cmdpattern.GetCommands(),
)
// Execute the command.
sponge.Execute()
}
示例7: init
func init() {
// This is being added to showcase configuration.
os.Setenv("KIT_LOGGING_LEVEL", "1")
os.Setenv("KIT_MIN_ROUTINES", "1")
os.Setenv("KIT_MAX_ROUTINES", "10")
// Init the configuration system.
if err := cfg.Init(cfg.EnvProvider{Namespace: configKey}); err != nil {
fmt.Println("Error initalizing configuration system", err)
os.Exit(1)
}
// Init the log system.
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.USER
}
return ll
}
log.Init(os.Stderr, logLevel)
// Log all the configuration options
log.User("startup", "init", "\n\nConfig Settings: %s\n%s\n", configKey, cfg.Log())
}
示例8: Init
// Init initializes the log package.
func Init(cfgKey string) {
cfg.Init(cfg.EnvProvider{Namespace: cfgKey})
logLevel := func() int {
ll, err := cfg.Int("LOGGING_LEVEL")
if err != nil {
return log.USER
}
return ll
}
log.Init(&logdash, logLevel)
}
示例9: Init
// Init is called to initialize the application.
func Init(configKey string) {
// Init the configuration system.
if err := cfg.Init(cfg.EnvProvider{Namespace: configKey}); err != nil {
fmt.Println("Error initalizing configuration system", err)
os.Exit(1)
}
// Init the log system.
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.USER
}
return ll
}
log.Init(os.Stderr, logLevel)
// Log all the configuration options
log.User("startup", "Init", "\n\nConfig Settings: %s\n%s\n", configKey, cfg.Log())
// Init MongoDB if configured.
if _, err := cfg.String(cfgMongoHost); err == nil {
app.useMongo = true
cfg := mongo.Config{
Host: cfg.MustString(cfgMongoHost),
AuthDB: cfg.MustString(cfgMongoAuthDB),
DB: cfg.MustString(cfgMongoDB),
User: cfg.MustString(cfgMongoUser),
Password: cfg.MustString(cfgMongoPassword),
}
if err := mongo.Init(cfg); err != nil {
log.Error("startup", "Init", err, "Initializing MongoDB")
os.Exit(1)
}
}
// Load user defined custom headers. HEADERS should be key:value,key:value
if hs, err := cfg.String("HEADERS"); err == nil {
hdrs := strings.Split(hs, ",")
for _, hdr := range hdrs {
if kv := strings.Split(hdr, ":"); len(kv) == 2 {
log.User("startup", "Init", "User Headers : %s:%s", kv[0], kv[1])
app.userHeaders[kv[0]] = kv[1]
}
}
}
}
示例10: Init
// Init sets up the configuration and logging systems.
func Init(p cfg.Provider) {
if err := cfg.Init(p); err != nil {
fmt.Println("Error initalizing configuration system", err)
os.Exit(1)
}
// Init the log system.
logLevel := func() int {
ll, err := cfg.Int(cfgLoggingLevel)
if err != nil {
return log.USER
}
return ll
}
log.Init(os.Stderr, logLevel, log.Ldefault)
}
示例11: TestNotExists
// TestNotExists validates the ability to load configuration values
// using the OS-level environment variables and panic when something
// is missing.
func TestNotExists(t *testing.T) {
t.Log("Given the need to panic when environment variables are missing.")
{
cfg.Init(cfg.MapProvider{
Map: map[string]string{
"PROC_ID": "322",
"SOCKET": "./tmp/sockets.po",
"PORT": "4034",
"FLAG": "on",
},
})
t.Log("\tWhen given a namspace key to search for that does NOT exist.")
{
shouldPanic(t, "STAMP", func() {
cfg.MustTime("STAMP")
})
shouldPanic(t, "PID", func() {
cfg.MustInt("PID")
})
shouldPanic(t, "DEST", func() {
cfg.MustString("DEST")
})
shouldPanic(t, "ACTIVE", func() {
cfg.MustBool("ACTIVE")
})
shouldPanic(t, "SOCKET_DSN", func() {
cfg.MustURL("SOCKET_DSN")
})
}
}
}
示例12: init
func init() {
if err := cfg.Init(cfg.EnvProvider{Namespace: "XENIA"}); err != nil {
log.Println("Unable to initialize configuration")
os.Exit(1)
}
// Insert the base url for requests by this client.
DefaultClient.BaseURL = cfg.MustURL(cfgWebHost).String()
platformPrivateKey, err := cfg.String(cfgPlatformPrivateKey)
if err != nil || platformPrivateKey == "" {
if err != nil {
log.Printf("Downstream Auth : Disabled : %s\n", err.Error())
return
}
log.Printf("Downstream Auth : Disabled\n")
return
}
// If the platformPrivateKey is provided, then we should generate the token
// signing function to be used when composing requests down to the platform.
signer, err := auth.NewSigner(platformPrivateKey)
if err != nil {
log.Printf("Downstream Auth : Error : %s", err.Error())
os.Exit(1)
}
// Requests can now be signed with the given signer function which we will
// save on the application wide context. In the event that a function
// requires a call down to a downstream platform, we will include a signed
// header using the signer function here.
DefaultClient.Signer = signer
log.Println("Downstream Auth : Enabled")
}
示例13: Init
// Init initializes the log package.
func Init(cfgKey string) {
cfg.Init(cfgKey)
log.Init(&logdash, func() int { return log.DEV })
}
示例14: TestExists
// TestExists validates the ability to load configuration values
// using the OS-level environment variables and read them back.
func TestExists(t *testing.T) {
t.Log("Given the need to read environment variables.")
{
uStr := "postgres://root:[email protected]:8080/postgres?sslmode=disable"
os.Setenv("MYAPP_PROC_ID", "322")
os.Setenv("MYAPP_SOCKET", "./tmp/sockets.po")
os.Setenv("MYAPP_PORT", "4034")
os.Setenv("MYAPP_FLAG", "true")
os.Setenv("MYAPP_DSN", uStr)
cfg.Init("MYAPP")
t.Log("\tWhen given a namspace key to search for that exists.")
{
proc, err := cfg.Int("PROC_ID")
if err != nil {
t.Errorf("\t\t%s Should not return error when valid key %q", failed, "PROC_ID")
} else {
t.Logf("\t\t%s Should not return error when valid key %q", succeed, "PROC_ID")
if proc != 322 {
t.Errorf("\t\t%s Should have key %q with value %d", failed, "PROC_ID", 322)
} else {
t.Logf("\t\t%s Should have key %q with value %d", succeed, "PROC_ID", 322)
}
}
socket, err := cfg.String("SOCKET")
if err != nil {
t.Errorf("\t\t%s Should not return error when valid key %q", failed, "SOCKET")
} else {
t.Logf("\t\t%s Should not return error when valid key %q", succeed, "SOCKET")
if socket != "./tmp/sockets.po" {
t.Errorf("\t\t%s Should have key %q with value %q", failed, "SOCKET", "./tmp/sockets.po")
} else {
t.Logf("\t\t%s Should have key %q with value %q", succeed, "SOCKET", "./tmp/sockets.po")
}
}
port, err := cfg.Int("PORT")
if err != nil {
t.Errorf("\t\t%s Should not return error when valid key %q", failed, "PORT")
} else {
t.Logf("\t\t%s Should not return error when valid key %q", succeed, "PORT")
if port != 4034 {
t.Errorf("\t\t%s Should have key %q with value %d", failed, "PORT", 4034)
} else {
t.Logf("\t\t%s Should have key %q with value %d", succeed, "PORT", 4034)
}
}
flag, err := cfg.Bool("FLAG")
if err != nil {
t.Errorf("\t\t%s Should not return error when valid key %q", failed, "FLAG")
} else {
t.Logf("\t\t%s Should not return error when valid key %q", succeed, "FLAG")
if flag == false {
t.Errorf("\t\t%s Should have key %q with value %v", failed, "FLAG", true)
} else {
t.Logf("\t\t%s Should have key %q with value %v", succeed, "FLAG", true)
}
}
u, err := cfg.URL("DSN")
if err != nil {
t.Errorf("\t\t%s Should not return error when valid key %q", failed, "DSN")
} else {
t.Logf("\t\t%s Should not return error when valid key %q", succeed, "DSN")
if u.String() != uStr {
t.Errorf("\t\t%s Should have key %q with value %v", failed, "DSN", true)
} else {
t.Logf("\t\t%s Should have key %q with value %v", succeed, "DSN", true)
}
}
}
}
}
示例15: TestSets
// TestSets validates the ability to manually set configuration values.
func TestSets(t *testing.T) {
t.Log("Given the need to manually set configuration values.")
{
/*
uStr := "postgres://root:[email protected]:8080/postgres?sslmode=disable"
Map: map[string]string{
"PROC_ID": "322",
"SOCKET": "./tmp/sockets.po",
"PORT": "4034",
"FLAG": "on",
"DSN": uStr,
},
*/
cfg.Init(cfg.MapProvider{
Map: map[string]string{},
})
t.Log("\tWhen setting values.")
{
key := "key1"
strVal := "bill"
cfg.SetString(key, strVal)
retStrVal, err := cfg.String(key)
if err != nil {
t.Errorf("\t\t%s Should find a value for the specified key %q.", failed, key)
} else {
t.Logf("\t\t%s Should find a value for the specified key %q.", success, key)
}
if strVal != retStrVal {
t.Log(strVal)
t.Log(retStrVal)
t.Errorf("\t\t%s Should return the string value %q that was set.", failed, strVal)
} else {
t.Logf("\t\t%s Should return the string value %q that was set.", success, strVal)
}
key = "key2"
intVal := 223
cfg.SetInt(key, intVal)
retIntVal, err := cfg.Int(key)
if err != nil {
t.Errorf("\t\t%s Should find a value for the specified key %q.", failed, key)
} else {
t.Logf("\t\t%s Should find a value for the specified key %q.", success, key)
}
if intVal != retIntVal {
t.Log(intVal)
t.Log(retIntVal)
t.Errorf("\t\t%s Should return the int value %d that was set.", failed, intVal)
} else {
t.Logf("\t\t%s Should return the int value %d that was set.", success, intVal)
}
key = "key3"
timeVal, _ := time.Parse(time.UnixDate, "Mon Oct 27 20:18:15 EST 2016")
cfg.SetTime(key, timeVal)
retTimeVal, err := cfg.Time(key)
if err != nil {
t.Errorf("\t\t%s Should find a value for the specified key %q.", failed, key)
} else {
t.Logf("\t\t%s Should find a value for the specified key %q.", success, key)
}
if timeVal != retTimeVal {
t.Log(timeVal)
t.Log(retTimeVal)
t.Errorf("\t\t%s Should return the time value %q that was set.", failed, timeVal)
} else {
t.Logf("\t\t%s Should return the time value %q that was set.", success, timeVal)
}
key = "key4"
boolVal := true
cfg.SetBool(key, boolVal)
retBoolVal, err := cfg.Bool(key)
if err != nil {
t.Errorf("\t\t%s Should find a value for the specified key %q.", failed, key)
} else {
t.Logf("\t\t%s Should find a value for the specified key %q.", success, key)
}
if boolVal != retBoolVal {
t.Log(boolVal)
t.Log(retBoolVal)
t.Errorf("\t\t%s Should return the bool value \"%v\" that was set.", failed, boolVal)
} else {
t.Logf("\t\t%s Should return the bool value \"%v\" that was set.", success, boolVal)
}
key = "key5"
urlVal, _ := url.Parse("postgres://root:[email protected]:8080/postgres?sslmode=disable")
cfg.SetURL(key, urlVal)
retURLVal, err := cfg.URL(key)
if err != nil {
t.Errorf("\t\t%s Should find a value for the specified key %q.", failed, key)
//.........这里部分代码省略.........