From b769dc186309195aa00dd722973fa70edda70eb5 Mon Sep 17 00:00:00 2001 From: Jarek Kowalski Date: Sun, 20 Aug 2017 13:54:54 -0700 Subject: [PATCH] emit a warning instead of failing when unsupported directory entries are encountered --- fs/localfs/local_fs.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/fs/localfs/local_fs.go b/fs/localfs/local_fs.go index d15840870..43822d162 100644 --- a/fs/localfs/local_fs.go +++ b/fs/localfs/local_fs.go @@ -3,6 +3,7 @@ package localfs import ( "fmt" "io" + "log" "os" "path/filepath" "sort" @@ -66,7 +67,8 @@ func (fsd *filesystemDirectory) Readdir() (fs.Entries, error) { for _, fi := range fileInfos { e, err := entryFromFileInfo(fi, filepath.Join(fsd.path, fi.Name()), fsd) if err != nil { - return nil, err + log.Printf("warning: %v", err) + continue } entries = append(entries, e) } @@ -93,7 +95,6 @@ func (erc *fileWithMetadata) EntryMetadata() (*fs.EntryMetadata, error) { if err != nil { return nil, err } - return entryMetadataFromFileInfo(fi), nil } @@ -169,17 +170,15 @@ func entryTypeFromFileMode(t os.FileMode) fs.EntryType { } func entryFromFileInfo(fi os.FileInfo, path string, parent fs.Directory) (fs.Entry, error) { - entry := newEntry(entryMetadataFromFileInfo(fi), parent, path) - switch fi.Mode() & os.ModeType { case os.ModeDir: - return &filesystemDirectory{entry}, nil + return &filesystemDirectory{newEntry(entryMetadataFromFileInfo(fi), parent, path)}, nil case os.ModeSymlink: - return &filesystemSymlink{entry}, nil + return &filesystemSymlink{newEntry(entryMetadataFromFileInfo(fi), parent, path)}, nil case 0: - return &filesystemFile{entry}, nil + return &filesystemFile{newEntry(entryMetadataFromFileInfo(fi), parent, path)}, nil default: return nil, fmt.Errorf("unsupported filesystem entry: %v", path)