source

package
v0.34.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2021 License: Apache-2.0 Imports: 12 Imported by: 4

Documentation

Index

Constants

View Source
const STDINFileIdentifier = "-"

If passed this identifier try to read config from STDIN

Variables

View Source
var LogWriter io.Writer

Functions

func Cascade

func Cascade(shortCircuit bool, providers ...ConfigProvider) *configSource

Builds a ConfigProvider by iterating over a cascade of ConfigProvider sources. Can be used in two distinct modes: with shortCircuit true the first successful ConfigProvider source is returned. With shortCircuit false sources appearing later are used to possibly override those appearing earlier

func DeepCopy

func DeepCopy(conf interface{}) (interface{}, error)

Passed a pointer to struct creates a deep copy of the struct

func Default

func Default(defaultConfig interface{}) *configSource

func EachOf

func EachOf(providers ...ConfigProvider) *configSource

func Environment

func Environment(key string) *configSource

Source from a single environment variable with config embedded in JSON

func File

func File(configFile string, skipNonExistent bool) *configSource

Try to source config from provided file detecting the file format, is skipNonExistent is true then the provider will fall-through (skip) when the file doesn't exist, rather than returning an error

func FirstOf

func FirstOf(providers ...ConfigProvider) *configSource

func FromFile

func FromFile(configFile string, conf interface{}) error

func FromJSONString

func FromJSONString(jsonString string, conf interface{}) error

func FromString

func FromString(configString string, conf interface{}) error

func FromTOMLString

func FromTOMLString(tomlString string, conf interface{}) error

func JSONString

func JSONString(conf interface{}) string

func Merge

func Merge(base, override interface{}) (interface{}, error)

func NewConfigProvider

func NewConfigProvider(from string, skip bool, apply func(baseConfig interface{}) error) *configSource

func ReadFile

func ReadFile(file string) ([]byte, error)

func ShouldSkipFile

func ShouldSkipFile(file string, skipNonExistent bool) bool

func TOMLString

func TOMLString(conf interface{}) string

func XDGBaseDir

func XDGBaseDir(configFileName string) *configSource

Try to find config by using XDG base dir spec

Types

type ConfigProvider

type ConfigProvider interface {
	// Description of where this provider sources its config from
	From() string
	// Get the config values to the passed in baseConfig
	Apply(baseConfig interface{}) error
	// Return a copy of the provider that does nothing if skip is true
	SetSkip(skip bool) ConfigProvider
	// Whether to skip this provider
	Skip() bool
}

type Format

type Format string
const (
	JSON    Format = "JSON"
	TOML    Format = "TOML"
	Unknown Format = ""
)

func DetectFormat

func DetectFormat(configString string) Format

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL