cfg

package
v2.5.2 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2022 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotPointer = errors.New("dst is not a pointer")
)

Functions

func DefaultUnmarshal

func DefaultUnmarshal(dst Cloneable, args []string, fs *flag.FlagSet) error

DefaultUnmarshal is a higher level wrapper for Unmarshal that automatically parses flags and a .yaml file

func DynamicUnmarshal

func DynamicUnmarshal(dst DynamicCloneable, args []string, fs *flag.FlagSet) error

DynamicUnmarshal handles populating a config based on the following precedence: 1. Defaults provided by the `RegisterFlags` interface 2. Sections populated by dynamic logic. Configs passed to this function must implement ApplyDynamicConfig() 3. Any config options specified directly in the config file 4. Any config options specified on the command line.

func Unmarshal

func Unmarshal(dst Cloneable, sources ...Source) error

Unmarshal merges the values of the various configuration sources and sets them on `dst`. The object must be compatible with `json.Unmarshal`.

Types

type Cloneable

type Cloneable interface {
	Clone() flagext.Registerer
}

Cloneable is a config which can be cloned into a flagext.Registerer Contract: the cloned value must not mutate the original.

type DynamicCloneable

type DynamicCloneable interface {
	Cloneable
	ApplyDynamicConfig() Source
}

DynamicCloneable must be implemented by config structs that can be dynamically unmarshalled

type Source

type Source func(Cloneable) error

Source is a generic configuration source. This function may do whatever is required to obtain the configuration. It is passed a pointer to the destination, which will be something compatible to `json.Unmarshal`. The obtained configuration may be written to this object, it may also contain data from previous sources.

func Defaults

func Defaults(fs *flag.FlagSet) Source

Defaults registers flags to the flagSet using dst as the flagext.Registerer

func Flags

func Flags(args []string, fs *flag.FlagSet) Source

Flags parses the flag from the command line, setting only user-supplied values on the flagext.Registerer passed to Defaults()

func JSON

func JSON(f *string) Source

JSON returns a Source that opens the supplied `.json` file and loads it.

func YAML

func YAML(f string, expandEnvVars bool) Source

YAML returns a Source that opens the supplied `.yaml` file and loads it. When expandEnvVars is true, variables in the supplied '.yaml\ file are expanded using https://pkg.go.dev/github.com/drone/envsubst?tab=overview

func YAMLFlag

func YAMLFlag(args []string, name string) Source

Jump to

Keyboard shortcuts

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