mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
35 lines
720 B
Go
35 lines
720 B
Go
|
package featuremgmt
|
||
|
|
||
|
import (
|
||
|
"io/ioutil"
|
||
|
|
||
|
"gopkg.in/yaml.v2"
|
||
|
)
|
||
|
|
||
|
type configBody struct {
|
||
|
// define variables that can be used in expressions
|
||
|
Vars map[string]interface{} `yaml:"vars"`
|
||
|
|
||
|
// Define and override feature flag properties
|
||
|
Flags []FeatureFlag `yaml:"flags"`
|
||
|
|
||
|
// keep track of where the fie was loaded from
|
||
|
filename string
|
||
|
}
|
||
|
|
||
|
// will read a single configfile
|
||
|
func readConfigFile(filename string) (*configBody, error) {
|
||
|
cfg := &configBody{}
|
||
|
|
||
|
// Can ignore gosec G304 because the file path is forced within config subfolder
|
||
|
//nolint:gosec
|
||
|
yamlFile, err := ioutil.ReadFile(filename)
|
||
|
if err != nil {
|
||
|
return cfg, err
|
||
|
}
|
||
|
|
||
|
err = yaml.Unmarshal(yamlFile, cfg)
|
||
|
cfg.filename = filename
|
||
|
return cfg, err
|
||
|
}
|