22 lines
590 B
Go
22 lines
590 B
Go
|
package cli
|
||
|
|
||
|
// ResourceLoader is a configuration resource loader.
|
||
|
type ResourceLoader interface {
|
||
|
// Load populates cmd.Configuration, optionally using args to do so.
|
||
|
Load(args []string, cmd *Command) (bool, error)
|
||
|
}
|
||
|
|
||
|
type filenameGetter interface {
|
||
|
GetFilename() string
|
||
|
}
|
||
|
|
||
|
// GetConfigFile returns the configuration file corresponding to the first configuration file loader found in ResourceLoader, if any.
|
||
|
func GetConfigFile(loaders []ResourceLoader) string {
|
||
|
for _, loader := range loaders {
|
||
|
if v, ok := loader.(filenameGetter); ok {
|
||
|
return v.GetFilename()
|
||
|
}
|
||
|
}
|
||
|
return ""
|
||
|
}
|