From 1024766514eea7bb628ec6e5ed974e997b8faefc Mon Sep 17 00:00:00 2001 From: zelig Date: Mon, 23 Jun 2014 12:20:59 +0100 Subject: refactor cli and gui wrapper code. Details: - all cli functions shared between ethereum and ethereal abstracted to utils/ cmd.go (should be ethcommon or shared or sth) - simplify main() now readable stepwise - rename main wrapper files to main.go - rename commmand line args definition file from config.go to flags.go - rename Do -> Start to parallel option names - register interrupt for rpc server stop - fix interrupt stopping js repl and ethereum - register interrupt for mining stop - custom config file option from command line - debug option from command line - loglevel option from command line - changed ethutil.Config API - default datadir and default config file set together with other flag defaults in wrappers - default assetpath set together with other command line flags defaults in gui wrapper (not in ethutil.Config or ui/ui_lib) - options precedence: default < config file < environment variables < command line --- ethereum/main.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ethereum/main.go (limited to 'ethereum/main.go') diff --git a/ethereum/main.go b/ethereum/main.go new file mode 100644 index 000000000..bbbaf5541 --- /dev/null +++ b/ethereum/main.go @@ -0,0 +1,47 @@ +package main + +import ( + "github.com/ethereum/go-ethereum/utils" + "github.com/ethereum/eth-go/ethlog" + "runtime" +) + +var logger = ethlog.NewLogger("CLI") + +func main() { + runtime.GOMAXPROCS(runtime.NumCPU()) + + // precedence: code-internal flag default < config file < environment variables < command line + Init() // parsing command line + utils.InitConfig(ConfigFile, Datadir, Identifier, "ETH") + + utils.InitDataDir(Datadir) + + utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile) + + ethereum := utils.NewEthereum(UseUPnP, OutboundPort, MaxPeer) + + // create, import, export keys + utils.KeyTasks(GenAddr, ImportKey, ExportKey, NonInteractive) + + if ShowGenesis { + utils.ShowGenesis(ethereum) + } + + if StartMining { + utils.StartMining(ethereum) + } + + // better reworked as cases + if StartJsConsole { + InitJsConsole(ethereum) + } else if len(InputFile) > 0 { + ExecJsFile(ethereum, InputFile) + } + + if StartRpc { + utils.StartRpc(ethereum, RpcPort) + } + + utils.StartEthereum(ethereum, UseSeed) +} -- cgit v1.2.3 From 2f96652bb408e65c205317403d749ba9a395c6bb Mon Sep 17 00:00:00 2001 From: zelig Date: Thu, 26 Jun 2014 10:47:45 +0100 Subject: interrupt handlers now ordered --- ethereum/main.go | 2 ++ 1 file changed, 2 insertions(+) (limited to 'ethereum/main.go') diff --git a/ethereum/main.go b/ethereum/main.go index bbbaf5541..800486e56 100644 --- a/ethereum/main.go +++ b/ethereum/main.go @@ -11,6 +11,8 @@ var logger = ethlog.NewLogger("CLI") func main() { runtime.GOMAXPROCS(runtime.NumCPU()) + utils.HandleInterrupt() + // precedence: code-internal flag default < config file < environment variables < command line Init() // parsing command line utils.InitConfig(ConfigFile, Datadir, Identifier, "ETH") -- cgit v1.2.3 From 21d86ca486a88c936a1fe71f78d76c78df36a7eb Mon Sep 17 00:00:00 2001 From: zelig Date: Thu, 26 Jun 2014 16:26:14 +0100 Subject: gui stop - introduce gui.Stop() - remember state with open - stopping ethereum stack is not gui concern, moved to main - stopping mining, gui and ethereum handled via interrupt callbacks - ^C triggers exactly the same behaviour as quit via menu --- ethereum/main.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ethereum/main.go') diff --git a/ethereum/main.go b/ethereum/main.go index 800486e56..93b2b47d3 100644 --- a/ethereum/main.go +++ b/ethereum/main.go @@ -46,4 +46,8 @@ func main() { } utils.StartEthereum(ethereum, UseSeed) + + // this blocks the thread + ethereum.WaitForShutdown() + ethlog.Flush() } -- cgit v1.2.3 From ae5ace16190d48bfe7a0364fdb0b51644518ec42 Mon Sep 17 00:00:00 2001 From: zelig Date: Thu, 26 Jun 2014 18:41:36 +0100 Subject: go fmt --- ethereum/main.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'ethereum/main.go') diff --git a/ethereum/main.go b/ethereum/main.go index 93b2b47d3..6b1995eec 100644 --- a/ethereum/main.go +++ b/ethereum/main.go @@ -1,8 +1,8 @@ package main import ( - "github.com/ethereum/go-ethereum/utils" "github.com/ethereum/eth-go/ethlog" + "github.com/ethereum/go-ethereum/utils" "runtime" ) @@ -24,11 +24,11 @@ func main() { ethereum := utils.NewEthereum(UseUPnP, OutboundPort, MaxPeer) // create, import, export keys - utils.KeyTasks(GenAddr, ImportKey, ExportKey, NonInteractive) + utils.KeyTasks(GenAddr, ImportKey, ExportKey, NonInteractive) - if ShowGenesis { - utils.ShowGenesis(ethereum) - } + if ShowGenesis { + utils.ShowGenesis(ethereum) + } if StartMining { utils.StartMining(ethereum) @@ -48,6 +48,6 @@ func main() { utils.StartEthereum(ethereum, UseSeed) // this blocks the thread - ethereum.WaitForShutdown() - ethlog.Flush() + ethereum.WaitForShutdown() + ethlog.Flush() } -- cgit v1.2.3