build: fix govet lint errors with golangci-lint v1.60.1

There were a lot of instances of this lint error

    printf: non-constant format string in call to github.com/rclone/rclone/fs.Logf (govet)

Which were fixed by re-arranging the arguments and adding "%s".

There were quite a few genuine bugs which were found too.
This commit is contained in:
Nick Craig-Wood 2024-08-14 18:19:36 +01:00
parent 83613634f9
commit 61b27cda80
12 changed files with 27 additions and 17 deletions

View file

@ -1927,7 +1927,7 @@ func (f *Fs) PublicLink(ctx context.Context, remote string, expire fs.Duration,
return shareURL, nil return shareURL, nil
} }
cnvFailMsg := "Don't know how to convert share link to direct link - returning the link as is" const cnvFailMsg = "Don't know how to convert share link to direct link - returning the link as is"
directURL := "" directURL := ""
segments := strings.Split(shareURL, "/") segments := strings.Split(shareURL, "/")
switch f.driveType { switch f.driveType {

View file

@ -635,7 +635,7 @@ func (f *Fs) setQuirks(ctx context.Context, vendor string) error {
odrvcookie.NewRenew(12*time.Hour, func() { odrvcookie.NewRenew(12*time.Hour, func() {
spCookies, err := spCk.Cookies(ctx) spCookies, err := spCk.Cookies(ctx)
if err != nil { if err != nil {
fs.Errorf("could not renew cookies: %s", err.Error()) fs.Errorf(nil, "could not renew cookies: %s", err.Error())
return return
} }
f.srv.SetCookie(&spCookies.FedAuth, &spCookies.RtFa) f.srv.SetCookie(&spCookies.FedAuth, &spCookies.RtFa)

View file

@ -116,7 +116,7 @@ func newFsFileAddFilter(remote string) (fs.Fs, string) {
if !fi.InActive() { if !fi.InActive() {
err := fmt.Errorf("can't limit to single files when using filters: %v", remote) err := fmt.Errorf("can't limit to single files when using filters: %v", remote)
err = fs.CountError(err) err = fs.CountError(err)
log.Fatalf(err.Error()) log.Fatal(err.Error())
} }
// Limit transfers to this file // Limit transfers to this file
err := fi.AddFile(fileName) err := fi.AddFile(fileName)

View file

@ -104,7 +104,7 @@ func cryptCheck(ctx context.Context, fdst, fsrc fs.Fs) error {
} }
if cryptHash != underlyingHash { if cryptHash != underlyingHash {
err = fmt.Errorf("hashes differ (%s:%s) %q vs (%s:%s) %q", fdst.Name(), fdst.Root(), cryptHash, fsrc.Name(), fsrc.Root(), underlyingHash) err = fmt.Errorf("hashes differ (%s:%s) %q vs (%s:%s) %q", fdst.Name(), fdst.Root(), cryptHash, fsrc.Name(), fsrc.Root(), underlyingHash)
fs.Errorf(src, err.Error()) fs.Errorf(src, "%s", err.Error())
return true, false, nil return true, false, nil
} }
return false, false, nil return false, false, nil

View file

@ -243,13 +243,13 @@ func (cds *contentDirectoryService) Handle(action string, argsXML []byte, r *htt
} }
obj, err := cds.objectFromID(browse.ObjectID) obj, err := cds.objectFromID(browse.ObjectID)
if err != nil { if err != nil {
return nil, upnp.Errorf(upnpav.NoSuchObjectErrorCode, err.Error()) return nil, upnp.Errorf(upnpav.NoSuchObjectErrorCode, "%s", err.Error())
} }
switch browse.BrowseFlag { switch browse.BrowseFlag {
case "BrowseDirectChildren": case "BrowseDirectChildren":
objs, err := cds.readContainer(obj, host) objs, err := cds.readContainer(obj, host)
if err != nil { if err != nil {
return nil, upnp.Errorf(upnpav.NoSuchObjectErrorCode, err.Error()) return nil, upnp.Errorf(upnpav.NoSuchObjectErrorCode, "%s", err.Error())
} }
totalMatches := len(objs) totalMatches := len(objs)
objs = objs[func() (low int) { objs = objs[func() (low int) {

View file

@ -12,14 +12,25 @@ type logger struct{}
// print log message // print log message
func (l logger) Print(level gofakes3.LogLevel, v ...interface{}) { func (l logger) Print(level gofakes3.LogLevel, v ...interface{}) {
var s string
if len(v) == 0 {
s = ""
} else {
var ok bool
s, ok = v[0].(string)
if !ok {
s = fmt.Sprint(v[0])
}
v = v[1:]
}
switch level { switch level {
default: default:
fallthrough fallthrough
case gofakes3.LogErr: case gofakes3.LogErr:
fs.Errorf("serve s3", fmt.Sprintln(v...)) fs.Errorf("serve s3", s, v...)
case gofakes3.LogWarn: case gofakes3.LogWarn:
fs.Infof("serve s3", fmt.Sprintln(v...)) fs.Infof("serve s3", s, v...)
case gofakes3.LogInfo: case gofakes3.LogInfo:
fs.Debugf("serve s3", fmt.Sprintln(v...)) fs.Debugf("serve s3", s, v...)
} }
} }

View file

@ -3,7 +3,6 @@ package s3
import ( import (
"context" "context"
"encoding/hex" "encoding/hex"
"fmt"
"io" "io"
"os" "os"
"path" "path"
@ -127,7 +126,7 @@ func authlistResolver(list []string) map[string]string {
for _, v := range list { for _, v := range list {
parts := strings.Split(v, ",") parts := strings.Split(v, ",")
if len(parts) != 2 { if len(parts) != 2 {
fs.Infof(nil, fmt.Sprintf("Ignored: invalid auth pair %s", v)) fs.Infof(nil, "Ignored: invalid auth pair %s", v)
continue continue
} }
authList[parts[0]] = parts[1] authList[parts[0]] = parts[1]

View file

@ -154,7 +154,7 @@ func TestCmdTest(t *testing.T) {
// Test simple call and output from rclone // Test simple call and output from rclone
out, err := rclone("version") out, err := rclone("version")
t.Logf("rclone version\n" + out) t.Log("rclone version\n" + out)
if assert.NoError(t, err) { if assert.NoError(t, err) {
assert.Contains(t, out, "rclone v") assert.Contains(t, out, "rclone v")
assert.Contains(t, out, "version: ") assert.Contains(t, out, "version: ")
@ -208,7 +208,7 @@ func TestCmdTest(t *testing.T) {
// Test access to config file and simple test data // Test access to config file and simple test data
out, err = rclone("lsl", "myLocal:"+testFolder) out, err = rclone("lsl", "myLocal:"+testFolder)
t.Logf("rclone lsl myLocal:testFolder\n" + out) t.Log("rclone lsl myLocal:testFolder\n" + out)
if assert.NoError(t, err) { if assert.NoError(t, err) {
assert.Contains(t, out, "rclone.config") assert.Contains(t, out, "rclone.config")
assert.Contains(t, out, "testdata/folderA/fileA1.txt") assert.Contains(t, out, "testdata/folderA/fileA1.txt")

View file

@ -568,7 +568,7 @@ func DeleteFileWithBackupDir(ctx context.Context, dst fs.Object, backupDir fs.Fs
fs.Errorf(dst, "Couldn't %s: %v", action, err) fs.Errorf(dst, "Couldn't %s: %v", action, err)
err = fs.CountError(err) err = fs.CountError(err)
} else if !skip { } else if !skip {
fs.Infof(dst, actioned) fs.Infof(dst, "%s", actioned)
} }
return err return err
} }

View file

@ -507,7 +507,7 @@ func rcRunCommand(ctx context.Context, in Params) (out Params, err error) {
var httpResponse http.ResponseWriter var httpResponse http.ResponseWriter
httpResponse, err = in.GetHTTPResponseWriter() httpResponse, err = in.GetHTTPResponseWriter()
if err != nil { if err != nil {
return nil, fmt.Errorf("response object is required\n" + err.Error()) return nil, fmt.Errorf("response object is required\n%w", err)
} }
var allArgs = []string{} var allArgs = []string{}

View file

@ -104,7 +104,7 @@ func bodyToString(responseBody io.Reader) (bodyString string, err error) {
return "", err return "", err
} }
bodyString = string(bodyBytes) bodyString = string(bodyBytes)
fs.Debugf(nil, "jwtutil: Response Body: "+bodyString) fs.Debugf(nil, "jwtutil: Response Body: %q", bodyString)
return bodyString, nil return bodyString, nil
} }

View file

@ -33,5 +33,5 @@ func ReadPassword(fd int) ([]byte, error) {
// WriteTerminalTitle writes a string to the terminal title // WriteTerminalTitle writes a string to the terminal title
func WriteTerminalTitle(title string) { func WriteTerminalTitle(title string) {
fmt.Printf(ChangeTitle + title + BEL) fmt.Print(ChangeTitle + title + BEL)
} }