diff options
author | Bas van Kervel <bas@ethdev.com> | 2015-06-14 01:02:46 +0800 |
---|---|---|
committer | Bas van Kervel <bas@ethdev.com> | 2015-06-14 01:02:46 +0800 |
commit | 2a0528303fb18dcc6799405d62a3a6f19da20b4a (patch) | |
tree | a1cf45920c9b5e8fb118791d8c3c28ce23fbe6ad | |
parent | 6f5c6150b7060b6b2ee68ac95b30f46c5c2c7f90 (diff) | |
download | go-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.tar.gz go-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.tar.zst go-tangerine-2a0528303fb18dcc6799405d62a3a6f19da20b4a.zip |
added batch mode to console
-rw-r--r-- | cmd/console/js.go | 24 | ||||
-rw-r--r-- | cmd/console/main.go | 11 |
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) + } } |