serialfile: Explicit err on unrecognized file type
So that ipfs add on daemon no longer blocks License: MIT Signed-off-by: rht <rhtbot@gmail.com>
rht committed
Sep 3, 2015 at 17:18 UTC
ddc8dff7368b4e5ce31596513666ebc6c1373381
1 file changed
+13
-2
commands/files/serialfile.go
+13
-2
@@ -1,6 +1,7 @@
1
package files
2
3
import (
4
+ "fmt"
5
"io"
6
"os"
7
fp "path/filepath"
@@ -26,13 +27,18 @@ type serialFile struct {
27
}
28
29
func NewSerialFile(name, path string, stat os.FileInfo) (File, error) {
29
- if stat.Mode()&os.ModeSymlink != 0 {
30
+ switch mode := stat.Mode(); {
31
+ case mode.IsDir() || mode.IsRegular():
32
+ break
33
+ case mode&os.ModeSymlink != 0:
34
target, err := os.Readlink(path)
35
if err != nil {
36
return nil, err
37
}
38
39
return NewLinkFile("", path, target, stat), nil
40
+ default:
41
+ return nil, fmt.Errorf("Unrecognized file type for %s: %s", stat.Name(), mode.String())
42
}
43
44
file, err := os.Open(path)
@@ -97,13 +103,18 @@ func (f *serialFile) NextFile() (File, error) {
103
return nil, err
104
}
105
100
- if st.Mode()&os.ModeSymlink != 0 {
106
+ switch mode := st.Mode(); {
107
+ case mode.IsDir() || mode.IsRegular():
108
+ break
109
+ case mode&os.ModeSymlink != 0:
110
f.current = nil
111
target, err := os.Readlink(filePath)
112
if err != nil {
113
return nil, err
114
}
115
return NewLinkFile(fileName, filePath, target, st), nil
116
+ default:
117
+ return nil, fmt.Errorf("Unrecognized file type for %s: %s", st.Name(), mode.String())
118
}
119
120
file, err := os.Open(filePath)