in api/internal/handler/route/route.go [288:323]
func generateLuaCode(script map[string]interface{}) (string, error) {
scriptString, err := json.Marshal(script)
if err != nil {
return "", err
}
workDir, err := filepath.Abs(conf.WorkDir)
if err != nil {
return "", err
}
libDir := filepath.Join(workDir, "dag-to-lua/")
if err := os.Chdir(libDir); err != nil {
log.Errorf("Chdir to libDir failed: %s", err)
return "", err
}
defer func() {
if err := os.Chdir(workDir); err != nil {
log.Errorf("Chdir to workDir failed: %s", err)
}
}()
L := lua.NewState()
defer L.Close()
if err := L.DoString(`
local dag_to_lua = require 'dag-to-lua'
local conf = [==[` + string(scriptString) + `]==]
code = dag_to_lua.generate(conf)
`); err != nil {
return "", err
}
code := L.GetGlobal("code")
return code.String(), nil
}