Commit 09c7d158 authored by obscuren's avatar obscuren

Error window

parent 9131a7c6
...@@ -7,7 +7,7 @@ Status](http://cpt-obvious.ethercasts.com:8010/buildstatusimage?builder=go-ether ...@@ -7,7 +7,7 @@ Status](http://cpt-obvious.ethercasts.com:8010/buildstatusimage?builder=go-ether
Ethereum Go Client © 2014 Jeffrey Wilcke. Ethereum Go Client © 2014 Jeffrey Wilcke.
Current state: Proof of Concept 0.6.4. Current state: Proof of Concept 0.6.5.
For the development package please see the [eth-go package](https://github.com/ethereum/eth-go). For the development package please see the [eth-go package](https://github.com/ethereum/eth-go).
......
package main
import (
"fmt"
"os"
"gopkg.in/qml.v1"
)
func ErrorWindow(err error) {
engine := qml.NewEngine()
component, e := engine.LoadString("local", qmlErr)
if e != nil {
fmt.Println("err:", err)
os.Exit(1)
}
win := component.CreateWindow(nil)
win.Root().ObjectByName("label").Set("text", err.Error())
win.Show()
win.Wait()
}
const qmlErr = `
import QtQuick 2.0; import QtQuick.Controls 1.0;
ApplicationWindow {
width: 600; height: 150;
flags: Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint
title: "Error"
Text {
x: parent.width / 2 - this.width / 2;
y: parent.height / 2 - this.height / 2;
objectName: "label";
}
}
`
package main package main
import ( import (
"fmt"
"os" "os"
"runtime" "runtime"
...@@ -12,7 +13,7 @@ import ( ...@@ -12,7 +13,7 @@ import (
const ( const (
ClientIdentifier = "Ethereal" ClientIdentifier = "Ethereal"
Version = "0.6.4" Version = "0.6.5"
) )
var ethereum *eth.Ethereum var ethereum *eth.Ethereum
...@@ -28,6 +29,23 @@ func run() error { ...@@ -28,6 +29,23 @@ func run() error {
utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile) utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
db := utils.NewDatabase() db := utils.NewDatabase()
err := utils.DBSanityCheck(db)
if err != nil {
engine := qml.NewEngine()
component, e := engine.LoadString("local", qmlErr)
if e != nil {
fmt.Println("err:", err)
os.Exit(1)
}
win := component.CreateWindow(nil)
win.Root().ObjectByName("label").Set("text", err.Error())
win.Show()
win.Wait()
ErrorWindow(err)
os.Exit(1)
}
keyManager := utils.NewKeyManager(KeyStore, Datadir, db) keyManager := utils.NewKeyManager(KeyStore, Datadir, db)
......
...@@ -13,7 +13,7 @@ import ( ...@@ -13,7 +13,7 @@ import (
const ( const (
ClientIdentifier = "Ethereum(G)" ClientIdentifier = "Ethereum(G)"
Version = "0.6.4" Version = "0.6.5"
) )
var logger = ethlog.NewLogger("CLI") var logger = ethlog.NewLogger("CLI")
......
...@@ -80,6 +80,16 @@ func confirm(message string) bool { ...@@ -80,6 +80,16 @@ func confirm(message string) bool {
return r == "y" return r == "y"
} }
func DBSanityCheck(db ethutil.Database) error {
d, _ := db.Get([]byte("ProtocolVersion"))
protov := ethutil.NewValue(d).Uint()
if protov != eth.ProtocolVersion && protov != 0 {
return fmt.Errorf("Database version mismatch. Protocol(%d / %d). `rm -rf %s`", protov, eth.ProtocolVersion, ethutil.Config.ExecPath+"/database")
}
return nil
}
func InitDataDir(Datadir string) { func InitDataDir(Datadir string) {
_, err := os.Stat(Datadir) _, err := os.Stat(Datadir)
if err != nil { if err != nil {
...@@ -112,7 +122,6 @@ func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.Co ...@@ -112,7 +122,6 @@ func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.Co
func exit(err error) { func exit(err error) {
status := 0 status := 0
if err != nil { if err != nil {
fmt.Println(err)
logger.Errorln("Fatal: ", err) logger.Errorln("Fatal: ", err)
status = 1 status = 1
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment