@@ -32,7 +32,7 @@ const (
32
32
dbInfoFile
33
33
)
34
34
35
- var fileTypeMap = map [string ]fileType {
35
+ var fileTypeMap = map [string ]fileType { //nolint:gochecknoglobals // this is instead of a const
36
36
"trace" : traceFile ,
37
37
"keys" : keysFile ,
38
38
"dbinfo" : dbInfoFile ,
@@ -43,47 +43,50 @@ var fileTypeMap = map[string]fileType{
43
43
func getFileType (filename string ) (fileType , error ) {
44
44
file , err := os .Open (filename )
45
45
if err != nil {
46
- return unknownFile , errors . New ( fmt .Sprintf ("error opening file: %v" , err ) )
46
+ return unknownFile , fmt .Errorf ("error opening file: %v" , err )
47
47
}
48
48
defer file .Close ()
49
49
50
50
decoder := json .NewDecoder (file )
51
51
52
52
token , err := decoder .Token ()
53
53
if err != nil {
54
- return unknownFile , errors . New ( fmt .Sprintf ( "Error reading token: %v" , err ) )
54
+ return unknownFile , fmt .Errorf ( "error reading token: %v" , err )
55
55
}
56
56
57
57
if delim , ok := token .(json.Delim ); ! ok || delim != '{' {
58
- return unknownFile , errors .New (fmt . Sprintf ( "Expected start of object '{'") )
58
+ return unknownFile , errors .New ("expected start of object '{'" )
59
59
}
60
60
61
- for decoder .More () {
62
- keyToken , err := decoder .Token ()
63
- if err != nil {
64
- return unknownFile , errors .New (fmt .Sprintf ("Error reading key token: %v" , err ))
65
- }
61
+ if ! decoder .More () {
62
+ return unknownFile , nil
63
+ }
66
64
67
- key , ok := keyToken .( string )
68
- if ! ok {
69
- return unknownFile , errors . New ( fmt .Sprintf ( "Expected key to be a string : %s " , keyToken ) )
70
- }
65
+ keyToken , err := decoder . Token ( )
66
+ if err != nil {
67
+ return unknownFile , fmt .Errorf ( "error reading key token : %v " , err )
68
+ }
71
69
72
- valueToken , err := decoder .Token ()
73
- if err != nil {
74
- return unknownFile , errors .New (fmt .Sprintf ("Error reading value token: %v" , err ))
75
- }
70
+ key , ok := keyToken .(string )
71
+ if ! ok {
72
+ return unknownFile , fmt .Errorf ("expected key to be a string: %s" , keyToken )
73
+ }
74
+
75
+ valueToken , err := decoder .Token ()
76
+ if err != nil {
77
+ return unknownFile , fmt .Errorf ("error reading value token: %v" , err )
78
+ }
76
79
77
- if key == "fileType" {
78
- if fileType , ok := fileTypeMap [valueToken .(string )]; ok {
79
- return fileType , nil
80
- } else {
81
- return unknownFile , errors .New (fmt .Sprintf ("Unknown FileType: %s" , valueToken ))
82
- }
83
- } else {
84
- // Currently we expect the first key to be FileType, for optimization reasons
85
- return unknownFile , nil
80
+ if key == "fileType" {
81
+ s , ok := valueToken .(string )
82
+ if ! ok {
83
+ return unknownFile , fmt .Errorf ("expected value to be a string: %s" , valueToken )
84
+ }
85
+ if fileType , ok := fileTypeMap [s ]; ok {
86
+ return fileType , nil
86
87
}
88
+ return unknownFile , fmt .Errorf ("unknown FileType: %s" , valueToken )
87
89
}
90
+
88
91
return unknownFile , nil
89
92
}
0 commit comments