Documentation ¶
Index ¶
- func GetString(s string, confmap ...map[string]string) string
- func GetStringMapString(s string, confmap ...map[string]string) map[string]string
- func GetStringSlice(s string, confmap ...map[string]string) []string
- type Config
- func (c *Config) ExpandString(input string, confmap map[string]string) (value string)
- func (c *Config) GetString(s string, confmap ...map[string]string) string
- func (c *Config) GetStringMapString(s string, confmap ...map[string]string) (m map[string]string)
- func (c *Config) GetStringSlice(s string, confmap ...map[string]string) (slice []string)
- type Options
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetString ¶
Returns the configuration item as a string with ExpandString() applied, passing the first "confmap" if given
func GetStringMapString ¶
Types ¶
type Config ¶
Config embeds Viper and also exposes the config type used
func LoadConfig ¶
LoadConfig loads configuration files from internal defaults, external defaults and the given configuration file. The configuration file can be passed as an option. Each layer is only loaded once, if given. Internal defaults are passed as a []byte intended to be loaded from an embedded file. External defaults and the main configuration file are passed as ordered slices of strings. The first match is loaded.
LoadConfig("geneos") //go:embed somefile.json var myDefaults []byte LoadConfig("geneos", config.SetDefaults(myDefaults, "json"), )
Options can be passed to change the default behaviour and to pass any embedded defaults or an existing viper.
for defaults see: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html ... find windows equiv
func (*Config) ExpandString ¶
Return a string that has all contents of the form ${var} or $var expanded according to the following rules:
url - read the contents of the url, which can be a local file, as below: ${file://path/to/file} - read the entire contents of the file, trim whitespace ${https://host/path} - fetch the remote contents, trim whitespace. "http:" also supported. ${env:VARNAME} - replace with the contents of the environment variable VARNAME, trim whitespace ${path.to.config} - and var containing a '.' will be looked up in global viper config space - this is NOT recursive ${name} - replace with the contents of confmap["name"] - trim whitespace
While the form $var is also supported but may be ambiguous and is not recommended.
If confmap is not given then environment variables are used directly.
Any errors result in an empty string being returned.
func (*Config) GetString ¶
Returns the configuration item as a string with ExpandString() applied, passing the first "confmap" if given
func (*Config) GetStringMapString ¶
type Options ¶
type Options func(*configOptions)
func AddConfigDirs ¶
AddConfigDirs() adds one or more directories to search for the configuration and defaults files. Directories are searched in FIFO order, so any directories given are checked before the built-in list.
func IgnoreSystemDir ¶
func IgnoreSystemDir() Options
IgnoreSystemDir() tells LoadConfig() not to search in the system configuration directory. This only applies on UNIX-like systems and is normally /etc/[appName]
func IgnoreUserConfDir ¶
func IgnoreUserConfDir() Options
IgnoreUserConfDir() tells LoadConfig() not to search in the user config directory (OS defined as per Go os.UserConfDir())
func IgnoreWorkingDir ¶
func IgnoreWorkingDir() Options
IgnoreWorkingDir() tells LoadConfig not to search the working directory for configuration files. This should be used when the caller may be running in an unknown location.
func SetAppName ¶
SetAppName() overrides to mapping of the configName to the application name. Application name is used for the containing directories, while configName is used for the files in those directories.
func SetConfigFile ¶
SetConfigFile() allows the caller to override the searching for a config file in the given directories and instead loads only the given file (after defaults are loaded as normal).
func SetDefaults ¶
SetDefaults() takes a []byte slice and a format type to load embedded defaults