mirror of
https://github.com/fleetdm/fleet
synced 2026-05-22 08:28:52 +00:00
#15821
This PR is adding two improvements and fixing two Windows bugs in Fleet
Desktop:
## Improvement
- We are now capturing the stderr of Fleet Desktop. This helped me find
bug (1) below (otherwise the panic output below was hidden from us).
- To reduce complexity I'm removing the "Theme detection" routine
because we made the decision to use the colored icon for both themes...,
see here:
415d1f493b/orbit/cmd/desktop/desktop_windows.go (L21-L27)
## Bug fixes
1. Fleet Desktop icon not showing in the task bar. This was fixed by
updating to use the latest version of `fyne.io/systray`. (See
https://github.com/fyne-io/systray/issues/22#issuecomment-1173157898.)
2. Orbit now properly detects if Fleet Desktop isn't running on Windows.
Bug (1)'s panic output
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x72b14b]
goroutine 23 [running]:
fyne.io/systray.(*winTray).setTooltip(0x1eb5d40, {0x126923f?, 0x0?})
/Users/luk/gopath/pkg/mod/fyne.io/systray@v1.10.0/systray_windows.go:260 +0xcb
fyne.io/systray.SetTooltip({0x126923f?, 0x125fc16?})
/Users/luk/gopath/pkg/mod/fyne.io/systray@v1.10.0/systray_windows.go:961 +0x29
main.main.func1()
/Users/luk/fleetdm/git/fleet/orbit/cmd/desktop/desktop.go:103 +0xba
fyne.io/systray.Register.func2()
/Users/luk/gopath/pkg/mod/fyne.io/systray@v1.10.0/systray.go:98 +0x2f
created by fyne.io/systray.Register in goroutine 1
/Users/luk/gopath/pkg/mod/fyne.io/systray@v1.10.0/systray.go:96 +0xb1
```
- [X] Changes file added for user-visible changes in `changes/` or
`orbit/changes/`.
See [Changes
files](https://fleetdm.com/docs/contributing/committing-changes#changes-files)
for more information.
- [X] Manual QA for all new/changed functionality
- For Orbit and Fleet Desktop changes:
- [X] Manual QA must be performed in the three main OSs, macOS, Windows
and Linux.
- [x] Auto-update manual QA, from released version of component to new
version (see [tools/tuf/test](../tools/tuf/test/README.md)).
34 lines
1 KiB
Markdown
34 lines
1 KiB
Markdown
> This package was copied from https://github.com/virtuald/go-paniclog
|
|
|
|
go-paniclog
|
|
===========
|
|
|
|
By default, panics in golang are sent to stderr. Unfortunately, there isn't a
|
|
direct builtin global mechanism to capture/send the output of the panic to
|
|
a file or really do anything with it other than to write to stderr.
|
|
|
|
One possible solution is that you can redirect stderr to a file, and that's
|
|
all that this package does. Of course, once you redirect stderr to file,
|
|
anything else you write to stderr will also end up in that file. v2.0 now
|
|
includes a function you can use to undo the redirection if you wanted to do
|
|
that for some reason.
|
|
|
|
Reference: https://stackoverflow.com/questions/34772012/capturing-panic-in-golang
|
|
|
|
|
|
Alternatives
|
|
------------
|
|
|
|
* [panicwrap](https://github.com/mitchellh/panicwrap) may be a better solution
|
|
for many programs
|
|
|
|
Author
|
|
------
|
|
|
|
I can't claim any credit for this idea or the code, it is entirely taken from
|
|
the [rclone](https://github.com/ncw/rclone.git) program by Nick Craig-Wood.
|
|
|
|
License
|
|
-------
|
|
|
|
MIT License
|