diff --git a/internal/auth/callback.go b/internal/auth/callback.go index 6ae0128..e49bfc7 100644 --- a/internal/auth/callback.go +++ b/internal/auth/callback.go @@ -17,6 +17,7 @@ package auth import ( "fmt" + "log" "net/http" "net/url" @@ -34,5 +35,12 @@ func RunOauth2CallbackServer(redirectURL url.URL, param string, responseChan cha } }) - go http.ListenAndServe(redirectURL.Host, nil) + go runServer(redirectURL.Host) +} + +func runServer(addr string) { + err := http.ListenAndServe(addr, nil) + if err != nil { + log.Fatal(err) + } } diff --git a/internal/backends/deezer/client.go b/internal/backends/deezer/client.go index 0d9cbb0..eccd188 100644 --- a/internal/backends/deezer/client.go +++ b/internal/backends/deezer/client.go @@ -79,7 +79,10 @@ func listRequest[T Result](c Client, path string, offset int, limit int) (result "limit": strconv.Itoa(limit), }). SetResult(&result) - c.setToken(request) + err = c.setToken(request) + if err != nil { + return + } response, err := request.Get(path) if response.StatusCode() != 200 { diff --git a/internal/backends/scrobblerlog/parser.go b/internal/backends/scrobblerlog/parser.go index a503d35..af891ac 100644 --- a/internal/backends/scrobblerlog/parser.go +++ b/internal/backends/scrobblerlog/parser.go @@ -105,7 +105,7 @@ func Write(data io.Writer, listens models.ListensList) (lastTimestamp time.Time, if !ok || rating == "" { rating = "L" } - tsvWriter.Write([]string{ + err = tsvWriter.Write([]string{ listen.ArtistName(), listen.ReleaseName, listen.TrackName, diff --git a/internal/backends/scrobblerlog/parser_test.go b/internal/backends/scrobblerlog/parser_test.go index 76b6c87..51d15c7 100644 --- a/internal/backends/scrobblerlog/parser_test.go +++ b/internal/backends/scrobblerlog/parser_test.go @@ -103,7 +103,7 @@ func TestWrite(t *testing.T) { require.NoError(t, err) lastTimestamp, err := scrobblerlog.Write(buffer, log.Listens) require.NoError(t, err) - result := string(buffer.Bytes()) + result := buffer.String() lines := strings.Split(result, "\n") assert.Equal(5, len(lines)) assert.Equal("#AUDIOSCROBBLER/1.1", lines[0]) diff --git a/internal/backends/scrobblerlog/scrobblerlog.go b/internal/backends/scrobblerlog/scrobblerlog.go index 2233421..09f081f 100644 --- a/internal/backends/scrobblerlog/scrobblerlog.go +++ b/internal/backends/scrobblerlog/scrobblerlog.go @@ -91,18 +91,18 @@ func (b *ScrobblerLogBackend) StartImport() error { } else { // Verify existing file is a scrobbler log reader := bufio.NewReader(file) - err = ReadHeader(reader, &b.log) - if err != nil { + if err = ReadHeader(reader, &b.log); err != nil { file.Close() return err } - file.Seek(0, 2) + if _, err = file.Seek(0, 2); err != nil { + return err + } } } if !b.append { - err = WriteHeader(file, &b.log) - if err != nil { + if err = WriteHeader(file, &b.log); err != nil { file.Close() return err } diff --git a/internal/cli/common.go b/internal/cli/common.go index 6c8786a..fb6fb02 100644 --- a/internal/cli/common.go +++ b/internal/cli/common.go @@ -24,11 +24,3 @@ func GetServiceConfigFromFlag(cmd *cobra.Command, flagName string) (config.Servi name := cmd.Flag(flagName).Value.String() return config.GetService(name) } - -func getInt64FromFlag(cmd *cobra.Command, flagName string) (result int64) { - result, err := cmd.Flags().GetInt64(flagName) - if err != nil { - result = 0 - } - return -} diff --git a/internal/config/config.go b/internal/config/config.go index f52de99..a529b92 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -61,7 +61,8 @@ func InitConfig(cfgFile string) error { // Create global config if it does not exist if viper.ConfigFileUsed() == "" && cfgFile == "" { if err := os.MkdirAll(configDir, 0750); err == nil { - viper.SafeWriteConfig() + // This call is expected to return an error if the file already exists + viper.SafeWriteConfig() //nolint:errcheck } } @@ -82,7 +83,7 @@ func WriteConfig(removedKeys ...string) error { configMap := viper.AllSettings() for _, key := range removedKeys { c := configMap - ok := true + var ok bool subKeys := strings.Split(key, ".") keyLen := len(subKeys) // Deep search the key in the config and delete the deepest key, if it exists