diff options
author | Robin Jarry <robin@jarry.cc> | 2023-01-05 12:16:34 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-01-06 23:51:52 +0100 |
commit | 175c1c822084d0f42892729c8e095397bd830966 (patch) | |
tree | 332ef46037e29509eb5ee9466ec2e0e2e12e2ee3 /Makefile | |
parent | 10b995f0196c8243132c3f435d4e11b3c9700e35 (diff) | |
download | aerc-175c1c822084d0f42892729c8e095397bd830966.tar.gz |
contrib: add linter to check for panic handler in goroutines
If log.PanicHandler() is not installed in a goroutine and a panic
occurs, the terminal state is not restored. This causes the panic trace
to be unreadable since the terminal is broken.
Add a custom analyzer that parses our code and ensures that:
defer log.PanicHandler()
is the first statement of all functions that are executed in goroutines.
Include that linter in golangci config.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -65,8 +65,11 @@ dev: fmt: $(GO) run mvdan.cc/gofumpt -w . +linters.so: contrib/linters.go + $(GO) build -buildmode=plugin -o linters.so contrib/linters.go + .PHONY: lint -lint: +lint: linters.so @contrib/check-whitespace `git ls-files` && echo white space ok. @$(GO) run mvdan.cc/gofumpt -d . | grep ^ \ && echo The above files need to be formatted, please run make fmt && exit 1 \ |