* Added support for accessing slices
* Processed PR feedback
- renamed searchMapWithPathPrefixes to searchIndexableWithPathPrefixes
- moved source type specific search logic to speparate functions
- Inverted if statments to avoid the arrow pattern
* Quickly return from searchSliceWithPathPrefixes and searchMapWithPathPrefixes functions without intermediate variables
Mapstructure so far returned nil for empty string slices.
In a recent version this bug has been fixed:
https://github.com/mitchellh/mapstructure/pull/155
Incidentally, this was a bug in Viper too:
GetStringSlice and Unmarshal returned with different values.
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
The Cleanup function used in this PR is only available from Go 1.14
While it would be nice to support more Go versions,
Go itself does not support other than the last two,
so that should be fine for Viper as well.
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This change modifies BindEnv to permit a list of environment variable
names in order to support multiple env. vars. for the same config key.
When this form is used, env. keys take precedence in the written order.
Closes#971
- Don't expand user home directory for variable names that simply have a
HOME prefix;
- Support expansion of variables not followed by the path separator.
* add parsing for stringToString flags
* add logic to return flags default if not val set, add a test
* extract parsing into single func
* add a few more cases
* return nil if unable to parse instead of panicing
* return map[string]interface in order to work with cast.ToStringMap
* mostly copy pflags implementation of the conversion to a stringtostring
* Add support to save file with no extension
The support introduced for files with no file extension is only partial as trying to save the config file would fail with `<file name> requires valid extension`
This adds support to saving such files
* Only consider files without extension if the config type is explicitly specified
* Hides unused variable in test
* First check for config type then for file without extension