Track duplicate meter usage
This commit is contained in:
parent
9181925d40
commit
72d59661c6
2 changed files with 11 additions and 1 deletions
|
|
@ -73,11 +73,21 @@ type ConfigProvider struct {
|
|||
meters map[string]api.Meter
|
||||
chargers map[string]api.Charger
|
||||
vehicles map[string]api.Vehicle
|
||||
visited map[string]bool
|
||||
}
|
||||
|
||||
// Meter provides meters by name
|
||||
func (cp *ConfigProvider) Meter(name string) api.Meter {
|
||||
if meter, ok := cp.meters[name]; ok {
|
||||
// track duplicate usage https://github.com/evcc-io/evcc/issues/1744
|
||||
if cp.visited == nil {
|
||||
cp.visited = make(map[string]bool)
|
||||
}
|
||||
if _, ok := cp.visited[name]; ok {
|
||||
log.FATAL.Fatalf("duplicate meter usage: %s", name)
|
||||
}
|
||||
cp.visited[name] = true
|
||||
|
||||
return meter
|
||||
}
|
||||
log.FATAL.Fatalf("invalid meter: %s", name)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ func init() {
|
|||
rand.Seed(time.Now().UnixNano())
|
||||
}
|
||||
|
||||
var cp = &ConfigProvider{}
|
||||
var cp = new(ConfigProvider)
|
||||
|
||||
func loadConfigFile(cfgFile string) (conf config, err error) {
|
||||
if cfgFile != "" {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue