aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBas van Kervel <bas@ethdev.com>2015-06-14 01:02:46 +0800
committerBas van Kervel <bas@ethdev.com>2015-06-14 01:02:46 +0800
commit2a0528303fb18dcc6799405d62a3a6f19da20b4a (patch)
treea1cf45920c9b5e8fb118791d8c3c28ce23fbe6ad
parent6f5c6150b7060b6b2ee68ac95b30f46c5c2c7f90 (diff)
downloadgo-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.tar.gz
go-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.tar.zst
go-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.zip
added batch mode to console
-rw-r--r--cmd/console/js.go24
-rw-r--r--cmd/console/main.go11
2 files changed, 30 insertions, 5 deletions
diff --git a/cmd/console/js.go b/cmd/console/js.go
index a5fdaacc2..bda58be4d 100644
--- a/cmd/console/js.go
+++ b/cmd/console/js.go
@@ -30,6 +30,7 @@ import (
"sort"
+ "github.com/codegangsta/cli"
"github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/common/docserver"
re "github.com/ethereum/go-ethereum/jsre"
@@ -329,7 +330,28 @@ func (self *jsre) welcome(ipcpath string) {
}
}
-func (self *jsre) interactive() {
+func (self *jsre) batch(args cli.Args) {
+ statement := strings.Join(args, " ")
+
+ val, err := self.re.Run(statement)
+
+ if err != nil {
+ fmt.Printf("error: %v", err)
+ } else if val.IsDefined() {
+ fmt.Printf("%v", val)
+ }
+
+ if self.atexit != nil {
+ self.atexit()
+ }
+
+ self.re.Stop(false)
+
+}
+
+func (self *jsre) interactive(ipcpath string) {
+ self.welcome(ipcpath)
+
// Read input lines.
prompt := make(chan string)
inputln := make(chan string)
diff --git a/cmd/console/main.go b/cmd/console/main.go
index e8dd412ba..00a9ca9c4 100644
--- a/cmd/console/main.go
+++ b/cmd/console/main.go
@@ -40,7 +40,7 @@ const (
var (
gitCommit string // set via linker flag
nodeNameVersion string
- app = utils.NewApp(Version, "the ether console")
+ app = utils.NewApp(Version, "the geth console")
)
func init() {
@@ -93,8 +93,11 @@ func main() {
func run(ctx *cli.Context) {
jspath := ctx.GlobalString(utils.JSpathFlag.Name)
ipcpath := utils.IpcSocketPath(ctx)
-
repl := newJSRE(jspath, ipcpath)
- repl.welcome(ipcpath)
- repl.interactive()
+
+ if ctx.Args().Present() {
+ repl.batch(ctx.Args())
+ } else {
+ repl.interactive(ipcpath)
+ }
}