diff options
Diffstat (limited to 'cmd/geth')
-rw-r--r-- | cmd/geth/admin.go | 6 | ||||
-rw-r--r-- | cmd/geth/main.go | 47 |
2 files changed, 30 insertions, 23 deletions
diff --git a/cmd/geth/admin.go b/cmd/geth/admin.go index ebdf3512a..53dd0e6ad 100644 --- a/cmd/geth/admin.go +++ b/cmd/geth/admin.go @@ -383,7 +383,7 @@ func (js *jsre) unlock(call otto.FunctionCall) otto.Value { var passphrase string if arg.IsUndefined() { fmt.Println("Please enter a passphrase now.") - passphrase, err = readPassword("Passphrase: ", true) + passphrase, err = utils.PromptPassword("Passphrase: ", true) if err != nil { fmt.Println(err) return otto.FalseValue() @@ -410,12 +410,12 @@ func (js *jsre) newAccount(call otto.FunctionCall) otto.Value { if arg.IsUndefined() { fmt.Println("The new account will be encrypted with a passphrase.") fmt.Println("Please enter a passphrase now.") - auth, err := readPassword("Passphrase: ", true) + auth, err := utils.PromptPassword("Passphrase: ", true) if err != nil { fmt.Println(err) return otto.FalseValue() } - confirm, err := readPassword("Repeat Passphrase: ", false) + confirm, err := utils.PromptPassword("Repeat Passphrase: ", false) if err != nil { fmt.Println(err) return otto.FalseValue() diff --git a/cmd/geth/main.go b/cmd/geth/main.go index 817337e20..df0af3e79 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -21,7 +21,6 @@ package main import ( - "bufio" "fmt" "io" "io/ioutil" @@ -44,13 +43,12 @@ import ( "github.com/ethereum/go-ethereum/logger" "github.com/mattn/go-colorable" "github.com/mattn/go-isatty" - "github.com/peterh/liner" ) import _ "net/http/pprof" const ( ClientIdentifier = "Geth" - Version = "0.9.21.1" + Version = "0.9.22" ) var ( @@ -230,6 +228,11 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso Name: "upgradedb", Usage: "upgrade chainblock database", }, + { + Action: removeDb, + Name: "removedb", + Usage: "Remove blockchain and state databases", + }, } app.Flags = []cli.Flag{ utils.IdentityFlag, @@ -421,12 +424,12 @@ func getPassPhrase(ctx *cli.Context, desc string, confirmation bool) (passphrase passfile := ctx.GlobalString(utils.PasswordFileFlag.Name) if len(passfile) == 0 { fmt.Println(desc) - auth, err := readPassword("Passphrase: ", true) + auth, err := utils.PromptPassword("Passphrase: ", true) if err != nil { utils.Fatalf("%v", err) } if confirmation { - confirm, err := readPassword("Repeat Passphrase: ", false) + confirm, err := utils.PromptPassword("Repeat Passphrase: ", false) if err != nil { utils.Fatalf("%v", err) } @@ -543,6 +546,25 @@ func exportchain(ctx *cli.Context) { return } +func removeDb(ctx *cli.Context) { + confirm, err := utils.PromptConfirm("Remove local databases?") + if err != nil { + utils.Fatalf("%v", err) + } + + if confirm { + fmt.Println("Removing chain and state databases...") + start := time.Now() + + os.RemoveAll(filepath.Join(ctx.GlobalString(utils.DataDirFlag.Name), "blockchain")) + os.RemoveAll(filepath.Join(ctx.GlobalString(utils.DataDirFlag.Name), "state")) + + fmt.Printf("Removed in %v\n", time.Since(start)) + } else { + fmt.Println("Operation aborted") + } +} + func upgradeDb(ctx *cli.Context) { fmt.Println("Upgrade blockchain DB") @@ -666,18 +688,3 @@ func hashish(x string) bool { _, err := strconv.Atoi(x) return err != nil } - -func readPassword(prompt string, warnTerm bool) (string, error) { - if liner.TerminalSupported() { - lr := liner.NewLiner() - defer lr.Close() - return lr.PasswordPrompt(prompt) - } - if warnTerm { - fmt.Println("!! Unsupported terminal, password will be echoed.") - } - fmt.Print(prompt) - input, err := bufio.NewReader(os.Stdin).ReadString('\n') - fmt.Println() - return input, err -} |