21 lines
590 B
Go
21 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 ""
|
|
}
|