new: new -script allows to run JS code to instrument session

This commit is contained in:
Simone Margaritelli 2021-04-04 15:15:32 +02:00
commit 40727063ec
13 changed files with 610 additions and 312 deletions

33
session/script_builtin.go Normal file
View file

@ -0,0 +1,33 @@
package session
import (
"github.com/bettercap/bettercap/js"
"github.com/robertkrimen/otto"
)
func jsEnvFunc(call otto.FunctionCall) otto.Value {
argv := call.ArgumentList
argc := len(argv)
if argc == 1 {
// get
varName := call.Argument(0).String()
if found, varValue := I.Env.Get(varName); found {
v, err := otto.ToValue(varValue)
if err != nil {
return js.ReportError("could not convert to string: %s", varValue)
}
return v
}
} else if argc == 2 {
// set
varName := call.Argument(0).String()
varValue := call.Argument(1).String()
I.Env.Set(varName, varValue)
} else {
return js.ReportError("env: expected 1 or 2 arguments, %d given instead.", argc)
}
return js.NullValue
}