Documentation
¶
Overview ¶
Package conf defines utils to simplify configuration management.
It provides functions to load and save config files.
Several formats are supported. The encoders/decoders are selected according to the extension of the paths passed to functions:
- JSON: ".json" - TOML: ".toml" - HCL: ".hcl"
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrUnsupportedFileType is returned when the type of the config file is // not supported. ErrUnsupportedFileType = errors.New("unsupported config type") // ErrInvalidMarshalData is returned when the marshaled value is not a // struct. ErrInvalidMarshalData = errors.New("the marshaled value must be a struct") // ErrInvalidUnmarshalData is returned when the marshaled value is not a // struct. ErrInvalidUnmarshalData = errors.New( "the unmarshaled value must be a pointer to a struct", ) )
Functions ¶
func LoadAndUpdateFile ¶
LoadAndUpdateFile reads the config fileat path and updates it, meaning that it adds new options, removes old ones, and update it by calling the Update method of data if it implements the interface Updater.
If no file is found at path, it is created and initialized with the default values.
An error is returned only if the config file cannot be written.
LoadAndUpdateFile panics with ErrInvalidUnmarshalData if data is not a pointer to a struct, as this error should be caught during dev.
func LoadFile ¶
LoadFile reads the file at path, parses its json content and fills the struct with the content of the file.
LoadFile panics with ErrInvalidUnmarshalData if data is not a pointer to a struct, as this error should be caught during dev.
func LoadFiles ¶
LoadFiles tries to load all the given paths in the given order.
If a path does not exist, it is ignored.
It returns an error only if the content of a file is invalid, i.e. it cannot be unmarshaled to the struct.
LoadFiles panics with ErrInvalidUnmarshalData if data is not a pointer to a struct, as this error should be caught during dev.
Types ¶
type Updater ¶
type Updater interface {
// Update is called by LoadAndUpdateFile
Update()
}
Updater is the interface that can be implemented by config structs. If it is implemented, Update() is called by LoadAndUpdateFile. It allows one to modify the data and persist those changes, for example to change default values.