aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/ethereum/main.go
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2015-03-15 14:31:40 +0800
committerzelig <viktor.tron@gmail.com>2015-03-15 14:31:40 +0800
commit7279a485c24de3f0aaf839e1884151322a97dbf7 (patch)
tree37080072b05021f76850a6c93fb03a46657149f3 /cmd/ethereum/main.go
parent16ecb1e2eaf5c7a17a29a35d33a02905fd45fe02 (diff)
downloaddexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar.gz
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar.bz2
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar.lz
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar.xz
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.tar.zst
dexon-7279a485c24de3f0aaf839e1884151322a97dbf7.zip
CLI:
- js subcommand for vm - console for Frontier console interactive REPL - jspath in cli - integrate jeth apiBindings
Diffstat (limited to 'cmd/ethereum/main.go')
-rw-r--r--cmd/ethereum/main.go50
1 files changed, 34 insertions, 16 deletions
diff --git a/cmd/ethereum/main.go b/cmd/ethereum/main.go
index 53746627a..0dae5b79b 100644
--- a/cmd/ethereum/main.go
+++ b/cmd/ethereum/main.go
@@ -89,16 +89,20 @@ Use "ethereum dump 0" to dump the genesis block.
`,
},
{
- Action: runjs,
+ Action: console,
+ Name: "console",
+ Usage: `Ethereum Frontier Console: interactive JavaScript environment`,
+ Description: `
+Frontier Console is an interactive shell for the Ethereum Frontier JavaScript runtime environment which exposes a node admin interface as well as the DAPP JavaScript API.
+See https://github.com/ethereum/go-ethereum/wiki/Frontier-Console
+`,
+ },
+ {
+ Action: execJSFiles,
Name: "js",
- Usage: `interactive JavaScript console`,
+ Usage: `executes the given JavaScript files in the Ethereum Frontier JavaScript VM`,
Description: `
-In the console, you can use the eth object to interact
-with the running ethereum stack. The API does not match
-ethereum.js.
-
-A JavaScript file can be provided as the argument. The
-runtime will execute the file and exit.
+The Ethereum Frontier JavaScript VM exposes a node admin interface as well as the DAPP JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Frontier-Console
`,
},
{
@@ -116,6 +120,7 @@ runtime will execute the file and exit.
utils.UnlockedAccountFlag,
utils.BootnodesFlag,
utils.DataDirFlag,
+ utils.JSpathFlag,
utils.ListenPortFlag,
utils.LogFileFlag,
utils.LogFormatFlag,
@@ -131,6 +136,7 @@ runtime will execute the file and exit.
utils.RPCPortFlag,
utils.UnencryptedKeysFlag,
utils.VMDebugFlag,
+
//utils.VMTypeFlag,
}
@@ -168,7 +174,7 @@ func run(ctx *cli.Context) {
ethereum.WaitForShutdown()
}
-func runjs(ctx *cli.Context) {
+func console(ctx *cli.Context) {
cfg := utils.MakeEthConfig(ClientIdentifier, Version, ctx)
ethereum, err := eth.New(cfg)
if err != nil {
@@ -176,14 +182,26 @@ func runjs(ctx *cli.Context) {
}
startEth(ctx, ethereum)
- repl := newJSRE(ethereum)
- if len(ctx.Args()) == 0 {
- repl.interactive()
- } else {
- for _, file := range ctx.Args() {
- repl.exec(file)
- }
+ repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name))
+ repl.interactive()
+
+ ethereum.Stop()
+ ethereum.WaitForShutdown()
+}
+
+func execJSFiles(ctx *cli.Context) {
+ cfg := utils.MakeEthConfig(ClientIdentifier, Version, ctx)
+ ethereum, err := eth.New(cfg)
+ if err != nil {
+ utils.Fatalf("%v", err)
}
+
+ startEth(ctx, ethereum)
+ repl := newJSRE(ethereum, ctx.String(utils.JSpathFlag.Name))
+ for _, file := range ctx.Args() {
+ repl.exec(file)
+ }
+
ethereum.Stop()
ethereum.WaitForShutdown()
}