mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
* modernise: Run new gopls modernise tool against codebase
* Address shazbert's nits
* apichecker, gctcli: Simplify HTML scraping functions and improve depth limit handling
* refactor: Create minSyncInterval const and update order book limit handling for binance and binanceUS
* refactor: Various slice usage improvements and rename TODO
* tranches: Revert deleteByID changes due to performance decrease
Shazbert was a F1 driver in a past lifetime 🏎️
* tranches: Simply retrieve copy
Thanks to shazbert
* documentation: Sort contributors list by contributions
* tranches: Remove deadcode in deleteByID
72 lines
1.7 KiB
Go
72 lines
1.7 KiB
Go
package vm
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"slices"
|
|
|
|
"github.com/thrasher-corp/gocryptotrader/common"
|
|
"github.com/thrasher-corp/gocryptotrader/log"
|
|
)
|
|
|
|
// Autoload remove entry from autoload slice
|
|
func (g *GctScriptManager) Autoload(name string, remove bool) error {
|
|
if filepath.Ext(name) != common.GctExt {
|
|
name += common.GctExt
|
|
}
|
|
if remove {
|
|
for x := range g.config.AutoLoad {
|
|
if g.config.AutoLoad[x] != name {
|
|
continue
|
|
}
|
|
g.config.AutoLoad = slices.Delete(g.config.AutoLoad, x, x+1)
|
|
if g.config.Verbose {
|
|
log.Debugf(log.GCTScriptMgr, "Removing script: %s from autoload", name)
|
|
}
|
|
return nil
|
|
}
|
|
return fmt.Errorf("%v - not found", name)
|
|
}
|
|
|
|
script := filepath.Join(ScriptPath, name)
|
|
_, err := os.Stat(script)
|
|
if err != nil {
|
|
if os.IsNotExist(err) {
|
|
return fmt.Errorf("%v - not found", script)
|
|
}
|
|
return err
|
|
}
|
|
g.config.AutoLoad = append(g.config.AutoLoad, name)
|
|
if g.config.Verbose {
|
|
log.Debugf(log.GCTScriptMgr, "Adding script: %s to autoload", name)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (g *GctScriptManager) autoLoad() {
|
|
for x := range g.config.AutoLoad {
|
|
temp := g.New()
|
|
if temp == nil {
|
|
log.Errorf(log.GCTScriptMgr, "Unable to create Virtual Machine, autoload failed for: %v",
|
|
g.config.AutoLoad[x])
|
|
continue
|
|
}
|
|
name := g.config.AutoLoad[x]
|
|
if filepath.Ext(name) != common.GctExt {
|
|
name += common.GctExt
|
|
}
|
|
scriptPath := filepath.Join(ScriptPath, name)
|
|
err := temp.Load(scriptPath)
|
|
if err != nil {
|
|
log.Errorf(log.GCTScriptMgr, "%v failed to load: %v", filepath.Base(scriptPath), err)
|
|
err = temp.unregister()
|
|
if err != nil {
|
|
log.Errorf(log.GCTScriptMgr, "%v failed to unregister: %v", filepath.Base(scriptPath), err)
|
|
}
|
|
continue
|
|
}
|
|
go temp.CompileAndRun()
|
|
}
|
|
}
|