Categorygithub.com/wrfly/ecp
modulepackage
0.2.4
Repository: https://github.com/wrfly/ecp.git
Documentation: pkg.go.dev

# README

ecp

Environment config parser

If you run your application in a container and deploy it via a docker-compose file, then you may need this tool for parsing configuration easily instead of mounting an external config file. You can simply set some environments and then ecp will help you fill the configs. Or, you can COPY a "default" config file to the image, and change some variables by overwriting the keys via environments.

The environment config keys can be auto generated or set by the yaml or env tag.

The only thing you should do is importing this package, and Parse your config.

Go Report Card Build Status GoDoc license

Usage Example

package main

import (
    "fmt"
    "os"

    "github.com/wrfly/ecp"
)

type Conf struct {
    LogLevel string `default:"debug"`
    Port     int    `env:"PORT"`
}

func main() {
    config := &Conf{}
    if err := ecp.Parse(config); err != nil {
        panic(err)
    }
    fmt.Printf("default log level: [ %s ]\n", config.LogLevel)
    fmt.Println()

    // set some env
    envs := map[string]string{
        "LOGLEVEL": "info",
        "PORT":         "1234",
    }
    for k, v := range envs {
        fmt.Printf("export %s=%s\n", k, v)
        os.Setenv(k, v)
    }
    fmt.Println()

    // then parse configuration from environments
    if err := ecp.Parse(config, "ECP"); err != nil {
        panic(err)
    }
    fmt.Printf("new log level: [ %s ], port: [ %d ]\n",
        config.LogLevel, config.Port)
    fmt.Println()

    // and list all the env keys
    envLists := ecp.List(config, "ecp")
    for _, k := range envLists {
        fmt.Println(k)
    }
}

Outputs:

default log level: [ debug ]

export LOGLEVEL=info
export PORT=1234

new log level: [ info ], port: [ 1234 ]

LOGLEVEL=debug
PORT=

# Functions

Get the value of the keyName in that struct.
GetBool returns bool.
GetFloat64 returns float64.
GetInt64 returns int64.
GetString returns string.
List all the config environments.
New ecp object.
Parse the configuration through environments starting with the prefix (or not) ecp.Parse(&config) or ecp.Parse(&config, "PREFIX") Parse will overwrite the existing value if there is an environment configuration matched with the struct name or the "env" tag name.

# Type aliases

No description provided by the author
No description provided by the author
No description provided by the author