Error window
This commit is contained in:
		@@ -7,7 +7,7 @@ Status](http://cpt-obvious.ethercasts.com:8010/buildstatusimage?builder=go-ether
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								ethereal/errors.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								ethereal/errors.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
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";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
`
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"runtime"
 | 
			
		||||
 | 
			
		||||
@@ -12,7 +13,7 @@ import (
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	ClientIdentifier = "Ethereal"
 | 
			
		||||
	Version          = "0.6.4"
 | 
			
		||||
	Version          = "0.6.5"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var ethereum *eth.Ethereum
 | 
			
		||||
@@ -28,6 +29,23 @@ func run() error {
 | 
			
		||||
	utils.InitLogging(Datadir, LogFile, LogLevel, DebugFile)
 | 
			
		||||
 | 
			
		||||
	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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ import (
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	ClientIdentifier = "Ethereum(G)"
 | 
			
		||||
	Version          = "0.6.4"
 | 
			
		||||
	Version          = "0.6.5"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var logger = ethlog.NewLogger("CLI")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								utils/cmd.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								utils/cmd.go
									
									
									
									
									
								
							@@ -80,6 +80,16 @@ func confirm(message string) bool {
 | 
			
		||||
	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) {
 | 
			
		||||
	_, err := os.Stat(Datadir)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -112,7 +122,6 @@ func InitConfig(ConfigFile string, Datadir string, EnvPrefix string) *ethutil.Co
 | 
			
		||||
func exit(err error) {
 | 
			
		||||
	status := 0
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		logger.Errorln("Fatal: ", err)
 | 
			
		||||
		status = 1
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user