Exemplo n.º 1
0
Arquivo: error.go Projeto: yannski/cli
func newReportError(err error) *ReportError {
	r := &ReportError{
		Time:    time.Now(),
		User:    api.CurrentUser,
		Error:   err,
		Command: strings.Join(os.Args, " "),
		Version: config.Version,
		System:  newSysinfo(),
	}

	if api.IsRequestFailedError(errgo.Cause(err)) {
		r.FailedRequest = errgo.Cause(err).(*api.RequestFailedError).Req.HTTPRequest
	}

	return r
}
Exemplo n.º 2
0
Arquivo: error.go Projeto: yannski/cli
func errorQuit(err error) {
	if errgo.Cause(err) == api.LoginAbortedErr {
		fmt.Printf("... %v\n", err)
		os.Exit(1)
	}

	if api.IsRequestFailedError(errgo.Cause(err)) {
		code := errgo.Cause(err).(*api.RequestFailedError).Code
		if code == 401 {
			session.DestroyToken()
		}
	}

	newReportError(err).Report()
	rollbar.Wait()
	io.Error("An error occured:")
	fmt.Println(io.Indent(err.Error(), 7))
	os.Exit(1)
}