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 }
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) }