Go plugin: add global imports (BC) (#17630)
This commit is contained in:
parent
b4636ff046
commit
b881bfcf5a
2 changed files with 14 additions and 7 deletions
|
|
@ -8,6 +8,13 @@ import (
|
|||
"github.com/traefik/yaegi/interp"
|
||||
)
|
||||
|
||||
const Imports = `import (
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
"time"
|
||||
)`
|
||||
|
||||
var (
|
||||
mu sync.Mutex
|
||||
registry = make(map[string]*interp.Interpreter)
|
||||
|
|
@ -29,6 +36,10 @@ func RegisteredVM(name, init string) (*interp.Interpreter, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if _, err := vm.Eval(Imports); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if init != "" {
|
||||
if _, err := vm.Eval(init); err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/evcc-io/evcc/provider/golang"
|
||||
"github.com/evcc-io/evcc/provider/golang/stdlib"
|
||||
"github.com/traefik/yaegi/interp"
|
||||
)
|
||||
|
|
@ -33,18 +34,13 @@ func (t *embed) init() (err error) {
|
|||
return err
|
||||
}
|
||||
|
||||
if _, err := vm.Eval(fmt.Sprintf(`
|
||||
import (
|
||||
"math"
|
||||
"time"
|
||||
)
|
||||
|
||||
if _, err := vm.Eval(fmt.Sprintf(`%s
|
||||
var (
|
||||
price float64
|
||||
charges float64 = %f
|
||||
tax float64 = %f
|
||||
ts time.Time
|
||||
)`, t.Charges, t.Tax)); err != nil {
|
||||
)`, golang.Imports, t.Charges, t.Tax)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue