diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/errors.go | 28 | ||||
-rw-r--r-- | src/page_artists.go | 1 | ||||
-rw-r--r-- | src/page_config.go | 2 | ||||
-rw-r--r-- | src/page_playlists.go | 1 |
4 files changed, 32 insertions, 0 deletions
diff --git a/src/errors.go b/src/errors.go new file mode 100644 index 0000000..7fea064 --- /dev/null +++ b/src/errors.go | |||
@@ -0,0 +1,28 @@ | |||
1 | package src | ||
2 | |||
3 | import ( | ||
4 | "fmt" | ||
5 | "os" | ||
6 | "time" | ||
7 | ) | ||
8 | |||
9 | var globalErrors = make(chan error, 100) | ||
10 | |||
11 | func init() { | ||
12 | go func() { | ||
13 | f, err := os.OpenFile("errors.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o664) | ||
14 | if err != nil { | ||
15 | panic(err) | ||
16 | } | ||
17 | defer f.Close() | ||
18 | |||
19 | for e := range globalErrors { | ||
20 | f.WriteString(fmt.Sprintf("%s: %v\n", time.Now(), e)) | ||
21 | f.Sync() | ||
22 | } | ||
23 | }() | ||
24 | } | ||
25 | |||
26 | func LogErrorf(format string, args ...any) { | ||
27 | globalErrors <- fmt.Errorf(format, args...) | ||
28 | } | ||
diff --git a/src/page_artists.go b/src/page_artists.go index f67697c..747165b 100644 --- a/src/page_artists.go +++ b/src/page_artists.go | |||
@@ -127,6 +127,7 @@ func (a *app) loadAlbumInPanel(id string) error { | |||
127 | err := a.playQueue.Play() | 127 | err := a.playQueue.Play() |
128 | if err != nil { | 128 | if err != nil { |
129 | a.alert("Error: %v", err) | 129 | a.alert("Error: %v", err) |
130 | LogErrorf("starting playback of album '%s': %v", album.Name, err) | ||
130 | } | 131 | } |
131 | }) | 132 | }) |
132 | } | 133 | } |
diff --git a/src/page_config.go b/src/page_config.go index 31e93e4..faa3b97 100644 --- a/src/page_config.go +++ b/src/page_config.go | |||
@@ -47,11 +47,13 @@ func (a *app) configPage() *tview.Form { | |||
47 | 47 | ||
48 | if err := a.refreshArtists(); err != nil { | 48 | if err := a.refreshArtists(); err != nil { |
49 | a.alert("Error: %v", err) | 49 | a.alert("Error: %v", err) |
50 | LogErrorf("refreshing artists following Ctrl+R: %v", err) | ||
50 | return nil | 51 | return nil |
51 | } | 52 | } |
52 | 53 | ||
53 | if err := a.refreshPlaylists(); err != nil { | 54 | if err := a.refreshPlaylists(); err != nil { |
54 | a.alert("Error: %v", err) | 55 | a.alert("Error: %v", err) |
56 | LogErrorf("refreshing playlists following Ctrl+R: %v", err) | ||
55 | return nil | 57 | return nil |
56 | } | 58 | } |
57 | 59 | ||
diff --git a/src/page_playlists.go b/src/page_playlists.go index 25b35ba..1eaa624 100644 --- a/src/page_playlists.go +++ b/src/page_playlists.go | |||
@@ -89,6 +89,7 @@ func (a *app) loadPlaylist(id string) error { | |||
89 | 89 | ||
90 | if err := a.playQueue.Play(); err != nil { | 90 | if err := a.playQueue.Play(); err != nil { |
91 | a.alert("Error: %v", err) | 91 | a.alert("Error: %v", err) |
92 | LogErrorf("starting playback of playlist '%s': %v", a.currentPlaylist.Name, err) | ||
92 | } | 93 | } |
93 | }) | 94 | }) |
94 | } | 95 | } |