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.
 | 
					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).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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
 | 
					package main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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 {
 | 
				
			|||||||
	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 (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
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")
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								utils/cmd.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								utils/cmd.go
									
									
									
									
									
								
							@@ -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
 | 
				
			|||||||
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
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user