dep.go 709 字节
Newer Older
P
peterq 已提交
1 2
package dep

P
peterq 已提交
3
import (
P
peterq 已提交
4
	"io/ioutil"
P
peterq 已提交
5
	"log"
P
peterq 已提交
6 7
	"os"
	"runtime"
P
peterq 已提交
8 9
	"runtime/debug"
)
P
peterq 已提交
10 11

var Fatal = func(str string) {
P
peterq 已提交
12
	debug.PrintStack()
P
peterq 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
	log.Fatal(str)
}

var initCb []func()

func OnInit(cb func()) {
	initCb = append(initCb, cb)
}
func DoInit() {
	for _, cb := range initCb {
		cb()
	}
	initCb = nil // 防止二次调用
}

var closeCb []func()

func OnClose(cb func()) {
	closeCb = append(closeCb, cb)
}

func DoClose() {
	for _, cb := range closeCb {
		cb()
	}
	closeCb = nil
}
P
peterq 已提交
40

P
peterq 已提交
41 42 43 44 45 46 47 48
func Reboot() {
	if runtime.GOOS == "windows" {
		ioutil.WriteFile(DataPath("reboot"), []byte("true"), 0664)
	}
	DoClose()
	os.Exit(2)
}

P
peterq 已提交
49 50 51
var NotifyQml = func(event string, data map[string]interface{}) {
	log.Println("not ready")
}