# Functions
BindFullyQualifiedFlag ensures that each flag used in commands is bound to a key using fully qualified name which has a following form:
commandName.flagName
This lets us keep structure of yaml file:
commandName: flagName: value.
SetupConfig defines Viper env var prefixes and type handling when inferring key value.
SetupConfigSources sets up Viper configuration sources.
SupportedExtensions returns a slice of all supported config format (as file extensions).
SyncFullyQualifiedFlag ensures that if configuration provides a value for a given cmd.flag it will be set back to the flag itself, but only if the flag was not set through CLI.
SyncFullyQualifiedFlags ensures that if configuration provide a value for any of defined flags it will be set back to the flag itself.