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
commands/compose
|
@ -16,6 +16,7 @@ import (
|
|||
"github.com/pkg/errors"
|
||||
|
||||
"git.sr.ht/~rjarry/aerc/lib"
|
||||
"git.sr.ht/~rjarry/aerc/logging"
|
||||
"git.sr.ht/~rjarry/aerc/models"
|
||||
"git.sr.ht/~rjarry/aerc/widgets"
|
||||
"git.sr.ht/~rjarry/aerc/worker/types"
|
||||
|
@ -100,6 +101,8 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
failCh := make(chan error)
|
||||
//writer
|
||||
go func() {
|
||||
defer logging.PanicHandler()
|
||||
|
||||
var sender io.WriteCloser
|
||||
switch ctx.scheme {
|
||||
case "smtp":
|
||||
|
@ -131,6 +134,8 @@ func (Send) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
|
||||
//cleanup + copy to sent
|
||||
go func() {
|
||||
defer logging.PanicHandler()
|
||||
|
||||
err = <-failCh
|
||||
if err != nil {
|
||||
aerc.PushError(strings.ReplaceAll(err.Error(), "\n", " "))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue