aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--aerc.go18
-rw-r--r--logging/panic-logger.go6
3 files changed, 22 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index c799682e..551fb1ed 100644
--- a/Makefile
+++ b/Makefile
@@ -14,6 +14,7 @@ BUILD_OPTS?=-trimpath
# ignore environment variable
GO_LDFLAGS:=
GO_LDFLAGS+=-X main.Version=$(VERSION)
+GO_LDFLAGS+=-X main.Flags=$(GOFLAGS)
GO_LDFLAGS+=-X git.sr.ht/~rjarry/aerc/config.shareDir=$(SHAREDIR)
GO_LDFLAGS+=$(GO_EXTRA_LDFLAGS)
diff --git a/aerc.go b/aerc.go
index 6e6c1d14..804befd2 100644
--- a/aerc.go
+++ b/aerc.go
@@ -5,7 +5,9 @@ import (
"errors"
"fmt"
"os"
+ "runtime"
"sort"
+ "strings"
"time"
"git.sr.ht/~sircmpwn/getopt"
@@ -89,6 +91,17 @@ func getCompletions(aerc *widgets.Aerc, cmd string) []string {
// set at build time
var Version string
+var Flags string
+
+func buildInfo() string {
+ info := Version
+ if strings.Contains(Flags, "notmuch") {
+ info += " +notmuch"
+ }
+ info += fmt.Sprintf(" (%s %s %s)",
+ runtime.Version(), runtime.GOARCH, runtime.GOOS)
+ return info
+}
func usage(msg string) {
fmt.Fprintln(os.Stderr, msg)
@@ -124,9 +137,10 @@ func main() {
usage("error: " + err.Error())
return
}
+ logging.BuildInfo = buildInfo()
for _, opt := range opts {
if opt.Option == 'v' {
- fmt.Println("aerc " + Version)
+ fmt.Println("aerc " + logging.BuildInfo)
return
}
}
@@ -149,7 +163,7 @@ func main() {
if !isatty.IsTerminal(os.Stdout.Fd()) {
logging.Init()
}
- logging.Infof("Starting up")
+ logging.Infof("Starting up version %s", logging.BuildInfo)
conf, err := config.LoadConfigFromFile(nil)
if err != nil {
diff --git a/logging/panic-logger.go b/logging/panic-logger.go
index 9f57f650..11b1803e 100644
--- a/logging/panic-logger.go
+++ b/logging/panic-logger.go
@@ -9,7 +9,10 @@ import (
"time"
)
-var UICleanup = func() {}
+var (
+ UICleanup = func() {}
+ BuildInfo string
+)
// PanicHandler tries to restore the terminal. A stack trace is written to
// aerc-crash.log and then passed on if a panic occurs.
@@ -41,6 +44,7 @@ func PanicHandler() {
fmt.Fprintln(panicLog, time.Now().Format("2006-01-02T15:04:05.000000-0700"))
fmt.Fprintln(panicLog, strings.Repeat("#", 80))
fmt.Fprintf(outputs, "%s\n", panicMessage)
+ fmt.Fprintf(outputs, "Version: %s\n", BuildInfo)
fmt.Fprintf(panicLog, "Error: %v\n\n", r)
panicLog.Write(debug.Stack()) //nolint:errcheck // we are already in a panic, so not much we can do here
fmt.Fprintf(os.Stderr, "\nThis error was also written to: %s\n", filename)