prysm-pulse/beacon-chain/node/clear_db.go

57 lines
1.2 KiB
Go
Raw Normal View History

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
}