From cbce882f5e35300016055cde81eeccb3ae052671 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 15 May 2014 20:45:19 +0200 Subject: Basic javascript console --- ethereum/ethereum.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index 2abf6da42..8b42c2a2c 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -146,6 +146,13 @@ save these words so you can restore your account later: %s console := NewConsole(ethereum) go console.Start() } + + if StartExp { + c := NewJSConsole(ethereum) + + go c.Start() + } + if StartRpc { utils.DoRpc(ethereum, RpcPort) } -- cgit v1.2.3 From 0a03484188dc23707b343bb512ec341afc744a2e Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 15 May 2014 22:15:14 +0200 Subject: Implemented JavaScript console --- ethereum/ethereum.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index 8b42c2a2c..128e11139 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -52,7 +52,12 @@ func main() { var logSys *log.Logger flags := log.LstdFlags - ethutil.ReadConfig(DataDir) + if StartJsConsole { + ethutil.ReadConfig(DataDir, ethutil.LogFile) + } else { + ethutil.ReadConfig(DataDir, ethutil.LogFile|ethutil.LogStd) + } + logger := ethutil.Config.Log if LogFile != "" { @@ -145,9 +150,7 @@ save these words so you can restore your account later: %s console := NewConsole(ethereum) go console.Start() - } - - if StartExp { + } else if StartJsConsole { c := NewJSConsole(ethereum) go c.Start() -- cgit v1.2.3 From 770808ce0d44cadfedbe01694c836be2eaf0e82c Mon Sep 17 00:00:00 2001 From: obscuren Date: Sat, 17 May 2014 15:15:46 +0200 Subject: Readline repl for linux & osx --- ethereum/ethereum.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index 128e11139..04933ef8e 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -151,9 +151,9 @@ save these words so you can restore your account later: %s console := NewConsole(ethereum) go console.Start() } else if StartJsConsole { - c := NewJSConsole(ethereum) + repl := NewJSRepl(ethereum) - go c.Start() + go repl.Start() } if StartRpc { -- cgit v1.2.3 From 017bbbb582b09a3264b4ff996f35275d381f284f Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 19 May 2014 16:32:45 +0200 Subject: Improved REPL output --- ethereum/ethereum.go | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index 04933ef8e..1cbb61002 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -15,16 +15,15 @@ import ( const Debug = true -// Register interrupt handlers so we can stop the ethereum -func RegisterInterrupts(s *eth.Ethereum) { - // Buffered chan of one is enough - c := make(chan os.Signal, 1) - // Notify about interrupts for now - signal.Notify(c, os.Interrupt) +func RegisterInterrupt(cb func(os.Signal)) { go func() { + // Buffered chan of one is enough + c := make(chan os.Signal, 1) + // Notify about interrupts for now + signal.Notify(c, os.Interrupt) + for sig := range c { - fmt.Printf("Shutting down (%v) ... \n", sig) - s.Stop() + cb(sig) } }() } @@ -154,13 +153,20 @@ save these words so you can restore your account later: %s repl := NewJSRepl(ethereum) go repl.Start() + + RegisterInterrupt(func(os.Signal) { + repl.Stop() + }) } if StartRpc { utils.DoRpc(ethereum, RpcPort) } - RegisterInterrupts(ethereum) + RegisterInterrupt(func(sig os.Signal) { + fmt.Printf("Shutting down (%v) ... \n", sig) + ethereum.Stop() + }) ethereum.Start(UseSeed) -- cgit v1.2.3 From 92eaa98e8381bef5224ffe864aa1cd4288af4d12 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 19 May 2014 17:01:40 +0200 Subject: Added js interpret mode --- ethereum/ethereum.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index 1cbb61002..f680b5416 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -6,6 +6,7 @@ import ( "github.com/ethereum/eth-go/ethchain" "github.com/ethereum/eth-go/ethutil" "github.com/ethereum/go-ethereum/utils" + "io/ioutil" "log" "os" "os/signal" @@ -51,7 +52,7 @@ func main() { var logSys *log.Logger flags := log.LstdFlags - if StartJsConsole { + if StartJsConsole || len(InputFile) > 0 { ethutil.ReadConfig(DataDir, ethutil.LogFile) } else { 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) { 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 { -- cgit v1.2.3 From 0ef7f6372939189dcfeaea8197798a63a6d6688a Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 20 May 2014 12:57:43 +0200 Subject: Removed old console in favor of the new JS REPL --- ethereum/ethereum.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'ethereum/ethereum.go') diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go index f680b5416..2fdfd5caf 100644 --- a/ethereum/ethereum.go +++ b/ethereum/ethereum.go @@ -141,16 +141,7 @@ save these words so you can restore your account later: %s utils.DoMining(ethereum) } - if StartConsole { - err := os.Mkdir(ethutil.Config.ExecPath, os.ModePerm) - // Error is OK if the error is ErrExist - if err != nil && !os.IsExist(err) { - log.Panic("Unable to create EXECPATH:", err) - } - - console := NewConsole(ethereum) - go console.Start() - } else if StartJsConsole { + if StartJsConsole { repl := NewJSRepl(ethereum) go repl.Start() -- cgit v1.2.3