Files
prysm/beacon-chain/node/clear_db.go
mkinney 9ca95530fa allow passing no,prompt,force options to clear-db (#3871)
* allow passing no,prompt,force options to clear-db

* ensure the node test runs ok

* remove clear-db option and add force-clear-db; remove no longer needed file

* add clear-db option back; force-clear-db overrides

* add clear-db option back to usage

* revert to only using --clear-db
2019-10-31 17:55:32 +08:00

57 lines
1.2 KiB
Go

package node
import (
"bufio"
"fmt"
"os"
"strings"
"github.com/prysmaticlabs/prysm/beacon-chain/db"
)
func confirmDelete(d db.Database, path string, force bool) (db.Database, error) {
var clearDB bool
var err error
reader := bufio.NewReader(os.Stdin)
if force {
clearDB = true
} else {
log.Warn("This will delete your beacon chain data base stored in your data directory. " +
"Your database backups will not be removed - do you want to proceed? (Y/N)")
for {
fmt.Print(">> ")
line, _, err := reader.ReadLine()
if err != nil {
return nil, err
}
trimmedLine := strings.TrimSpace(string(line))
lineInput := strings.ToUpper(trimmedLine)
if lineInput != "Y" && lineInput != "N" {
log.Errorf("Invalid option of %s chosen, enter Y/N", line)
continue
}
if lineInput == "Y" {
clearDB = true
break
}
log.Info("Not deleting chain database, the db will be initialized" +
" with the current data directory.")
break
}
}
if clearDB {
log.Warning("Removing database")
if err := d.ClearDB(); err != nil {
return nil, err
}
d, err = db.NewDB(path)
if err != nil {
return nil, err
}
}
return d, nil
}