Files
gocryptotrader/gctscript/modules/loader/loader.go
Ryan O'Hara-Reid 0adf39de35 Update to GCT script library (#496)
* * Adds script link to GCT logger package
* Adds ability to save data as csv via script

* addr nits

* go mod tidy

* add glorious suggestion

* rm unused function

* fix linter issues

* clean up some issues

* Add in configuration fields to object for reflection to the csv file

* RM line :D

* address nits

* update to check for target already being set and add more test coverage

* force usage of .csv file extention && append date to client filename as to not overwrite file if collision occurs

* fix whoopsie

* linter issues

* purge getter methods

* Added glorious suggestion

* go mod tidy after merge

* niterinos
2020-05-14 11:05:46 +10:00

45 lines
1.1 KiB
Go

package loader
import (
"github.com/d5/tengo/v2"
"github.com/d5/tengo/v2/stdlib"
"github.com/thrasher-corp/gocryptotrader/gctscript/modules/gct"
"github.com/thrasher-corp/gocryptotrader/gctscript/modules/ta"
)
// GetModuleMap returns the module map that includes all modules
// for the given module names.
func GetModuleMap() *tengo.ModuleMap {
modules := tengo.NewModuleMap()
gctModuleList := gct.AllModuleNames()
for _, name := range gctModuleList {
if mod := gct.Modules[name]; mod != nil {
modules.AddBuiltinModule(name, mod)
}
}
taModuleList := ta.AllModuleNames()
for _, name := range taModuleList {
if mod := ta.Modules[name]; mod != nil {
modules.AddBuiltinModule(name, mod)
}
}
stdLib := stdlib.AllModuleNames()
for _, name := range stdLib {
if mod := stdlib.BuiltinModules[name]; mod != nil {
modules.AddBuiltinModule(name, mod)
}
if mod := stdlib.SourceModules[name]; mod != "" {
modules.AddSourceModule(name, []byte(mod))
}
}
return modules
}
// SetDefaultScriptOutput sets the output folder
func SetDefaultScriptOutput(path string) {
gct.OutputDir = path
}