Load units
This commit is contained in:
parent
8748c22d6e
commit
5f8329d368
|
@ -0,0 +1,28 @@
|
||||||
|
package core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/localhots/yeast/impl"
|
||||||
|
"github.com/localhots/yeast/unit"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
Units = map[string]Caller{}
|
||||||
|
)
|
||||||
|
|
||||||
|
func LoadUnits(b []byte) {
|
||||||
|
var conf map[string]map[string]interface{}
|
||||||
|
json.Unmarshal(b, &conf)
|
||||||
|
|
||||||
|
for name, meta := range conf {
|
||||||
|
// Check for unit implementation and create a unit if there is none
|
||||||
|
if imp := impl.New(meta["impl"].(string)); imp != nil {
|
||||||
|
Units[name] = imp
|
||||||
|
} else {
|
||||||
|
Units[name] = &unit.Unit{
|
||||||
|
Name: name,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue