diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-11-30 19:34:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-30 19:34:24 +0800 |
commit | 86f9e836bea8161d9f6c1dacaa0b208e86b42e83 (patch) | |
tree | d096463c6fc28092902a8ada42788d9e5d653453 /cmd/geth/misccmd.go | |
parent | a90a170361f278d1ea4799a4c270f17f9c574779 (diff) | |
download | go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar.gz go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar.bz2 go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar.lz go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar.xz go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.tar.zst go-tangerine-86f9e836bea8161d9f6c1dacaa0b208e86b42e83.zip |
cmd/geth: tidied up the source (#3385)
cmd/geth: tidied up the source
Diffstat (limited to 'cmd/geth/misccmd.go')
-rw-r--r-- | cmd/geth/misccmd.go | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/cmd/geth/misccmd.go b/cmd/geth/misccmd.go new file mode 100644 index 000000000..077f1ad11 --- /dev/null +++ b/cmd/geth/misccmd.go @@ -0,0 +1,128 @@ +// Copyright 2016 The go-ethereum Authors +// This file is part of go-ethereum. +// +// go-ethereum is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// go-ethereum is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>. + +package main + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + "runtime" + "strconv" + "strings" + + "github.com/ethereum/ethash" + "github.com/ethereum/go-ethereum/cmd/utils" + "github.com/ethereum/go-ethereum/eth" + "github.com/ethereum/go-ethereum/params" + "gopkg.in/urfave/cli.v1" +) + +var ( + makedagCommand = cli.Command{ + Action: makedag, + Name: "makedag", + Usage: "Generate ethash DAG (for testing)", + ArgsUsage: "<blockNum> <outputDir>", + Category: "MISCELLANEOUS COMMANDS", + Description: ` +The makedag command generates an ethash DAG in /tmp/dag. + +This command exists to support the system testing project. +Regular users do not need to execute it. +`, + } + versionCommand = cli.Command{ + Action: version, + Name: "version", + Usage: "Print version numbers", + ArgsUsage: " ", + Category: "MISCELLANEOUS COMMANDS", + Description: ` +The output of this command is supposed to be machine-readable. +`, + } + licenseCommand = cli.Command{ + Action: license, + Name: "license", + Usage: "Display license information", + ArgsUsage: " ", + Category: "MISCELLANEOUS COMMANDS", + } +) + +func makedag(ctx *cli.Context) error { + args := ctx.Args() + wrongArgs := func() { + utils.Fatalf(`Usage: geth makedag <block number> <outputdir>`) + } + switch { + case len(args) == 2: + blockNum, err := strconv.ParseUint(args[0], 0, 64) + dir := args[1] + if err != nil { + wrongArgs() + } else { + dir = filepath.Clean(dir) + // seems to require a trailing slash + if !strings.HasSuffix(dir, "/") { + dir = dir + "/" + } + _, err = ioutil.ReadDir(dir) + if err != nil { + utils.Fatalf("Can't find dir") + } + fmt.Println("making DAG, this could take awhile...") + ethash.MakeDAG(blockNum, dir) + } + default: + wrongArgs() + } + return nil +} + +func version(ctx *cli.Context) error { + fmt.Println(strings.Title(clientIdentifier)) + fmt.Println("Version:", params.Version) + if gitCommit != "" { + fmt.Println("Git Commit:", gitCommit) + } + fmt.Println("Protocol Versions:", eth.ProtocolVersions) + fmt.Println("Network Id:", ctx.GlobalInt(utils.NetworkIdFlag.Name)) + fmt.Println("Go Version:", runtime.Version()) + fmt.Println("OS:", runtime.GOOS) + fmt.Printf("GOPATH=%s\n", os.Getenv("GOPATH")) + fmt.Printf("GOROOT=%s\n", runtime.GOROOT()) + return nil +} + +func license(_ *cli.Context) error { + fmt.Println(`Geth is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Geth is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with geth. If not, see <http://www.gnu.org/licenses/>. +`) + return nil +} |