Added js interpret mode

This commit is contained in:
obscuren 2014-05-19 17:01:40 +02:00
parent 017bbbb582
commit 92eaa98e83
3 changed files with 29 additions and 3 deletions

View File

@ -21,6 +21,7 @@ var LogFile string
var DataDir string var DataDir string
var NonInteractive bool var NonInteractive bool
var StartJsConsole bool var StartJsConsole bool
var InputFile string
func Init() { func Init() {
flag.BoolVar(&StartConsole, "c", false, "debug and testing console") flag.BoolVar(&StartConsole, "c", false, "debug and testing console")
@ -40,6 +41,7 @@ func Init() {
flag.StringVar(&ImportKey, "import", "", "imports the given private key (hex)") flag.StringVar(&ImportKey, "import", "", "imports the given private key (hex)")
flag.IntVar(&MaxPeer, "x", 5, "maximum desired peers") flag.IntVar(&MaxPeer, "x", 5, "maximum desired peers")
flag.BoolVar(&StartJsConsole, "js", false, "exp") flag.BoolVar(&StartJsConsole, "js", false, "exp")
flag.StringVar(&InputFile, "e", "", "Run javascript file")
flag.Parse() flag.Parse()
} }

View File

@ -6,6 +6,7 @@ import (
"github.com/ethereum/eth-go/ethchain" "github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethutil" "github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/utils" "github.com/ethereum/go-ethereum/utils"
"io/ioutil"
"log" "log"
"os" "os"
"os/signal" "os/signal"
@ -51,7 +52,7 @@ func main() {
var logSys *log.Logger var logSys *log.Logger
flags := log.LstdFlags flags := log.LstdFlags
if StartJsConsole { if StartJsConsole || len(InputFile) > 0 {
ethutil.ReadConfig(DataDir, ethutil.LogFile) ethutil.ReadConfig(DataDir, ethutil.LogFile)
} else { } else {
ethutil.ReadConfig(DataDir, ethutil.LogFile|ethutil.LogStd) ethutil.ReadConfig(DataDir, ethutil.LogFile|ethutil.LogStd)
@ -157,6 +158,22 @@ save these words so you can restore your account later: %s
RegisterInterrupt(func(os.Signal) { RegisterInterrupt(func(os.Signal) {
repl.Stop() repl.Stop()
}) })
} else if len(InputFile) > 0 {
file, err := os.Open(InputFile)
if err != nil {
ethutil.Config.Log.Fatal(err)
}
content, err := ioutil.ReadAll(file)
if err != nil {
ethutil.Config.Log.Fatal(err)
}
re := NewJSRE(ethereum)
RegisterInterrupt(func(os.Signal) {
re.Stop()
})
re.Run(string(content))
} }
if StartRpc { if StartRpc {

View File

@ -31,6 +31,8 @@ function pp(object) {
str += "\033[1m\033[30m" + object; str += "\033[1m\033[30m" + object;
} else if(typeof(object) === "number") { } else if(typeof(object) === "number") {
str += "\033[31m" + object; str += "\033[31m" + object;
} else if(typeof(object) === "function") {
str += "\033[35m[Function]";
} else { } else {
str += object; str += object;
} }
@ -40,7 +42,12 @@ function pp(object) {
return str; return str;
} }
function prettyPrint(object) { function prettyPrint(/* */) {
console.log(pp(object)) var args = arguments;
for(var i = 0, l = args.length; i < l; i++) {
console.log(pp(args[i]))
}
} }
var print = prettyPrint;
` `