logging: added a log on panic
Since panics still regularly "destroy" the terminal, it is hard to get a stack trace for panics you do not anticipate. This commit adds a panic handler that automatically creates a logfile inside the current working directory. It has to be added to every goroutine that is started and will repair the terminal on a panic. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
parent
feecc09b73
commit
ae83373fa6
27 changed files with 161 additions and 23 deletions
|
@ -9,6 +9,7 @@ import (
|
|||
"time"
|
||||
|
||||
"git.sr.ht/~rjarry/aerc/lib"
|
||||
"git.sr.ht/~rjarry/aerc/logging"
|
||||
"git.sr.ht/~rjarry/aerc/widgets"
|
||||
)
|
||||
|
||||
|
@ -66,6 +67,8 @@ func (Open) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
return
|
||||
}
|
||||
go func() {
|
||||
defer logging.PanicHandler()
|
||||
|
||||
err := xdg.Wait()
|
||||
if err != nil {
|
||||
aerc.PushError(err.Error())
|
||||
|
|
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/mitchellh/go-homedir"
|
||||
|
||||
"git.sr.ht/~rjarry/aerc/commands"
|
||||
"git.sr.ht/~rjarry/aerc/logging"
|
||||
"git.sr.ht/~rjarry/aerc/models"
|
||||
"git.sr.ht/~rjarry/aerc/widgets"
|
||||
)
|
||||
|
@ -126,6 +127,8 @@ func (Save) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
|
||||
// we need to wait for the callback prior to displaying a result
|
||||
go func() {
|
||||
defer logging.PanicHandler()
|
||||
|
||||
err := <-ch
|
||||
if err != nil {
|
||||
aerc.PushError(fmt.Sprintf("Save failed: %v", err))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue