fix: skip files with errors during scan
This commit is contained in:
@@ -83,6 +83,7 @@ func probe(inputs []string) (map[string]*Metadata, error) {
|
|||||||
infos := parseOutput(string(output))
|
infos := parseOutput(string(output))
|
||||||
for file, info := range infos {
|
for file, info := range infos {
|
||||||
md, err := extractMetadata(file, info)
|
md, err := extractMetadata(file, info)
|
||||||
|
// Skip files with errors
|
||||||
if err == nil {
|
if err == nil {
|
||||||
mds[file] = md
|
mds[file] = md
|
||||||
}
|
}
|
||||||
@@ -117,9 +118,16 @@ func parseOutput(output string) map[string]string {
|
|||||||
func extractMetadata(filePath, info string) (*Metadata, error) {
|
func extractMetadata(filePath, info string) (*Metadata, error) {
|
||||||
m := &Metadata{filePath: filePath, tags: map[string]string{}}
|
m := &Metadata{filePath: filePath, tags: map[string]string{}}
|
||||||
m.suffix = strings.ToLower(strings.TrimPrefix(path.Ext(filePath), "."))
|
m.suffix = strings.ToLower(strings.TrimPrefix(path.Ext(filePath), "."))
|
||||||
|
var err error
|
||||||
|
m.fileInfo, err = os.Stat(filePath)
|
||||||
|
if err != nil {
|
||||||
|
log.Warn("Error stating file. Skipping", "filePath", filePath, err)
|
||||||
|
return nil, errors.New("error stating file")
|
||||||
|
}
|
||||||
|
|
||||||
m.parseInfo(info)
|
m.parseInfo(info)
|
||||||
m.fileInfo, _ = os.Stat(filePath)
|
|
||||||
if len(m.tags) == 0 {
|
if len(m.tags) == 0 {
|
||||||
|
log.Trace("Not a media file. Skipping", "filePath", filePath)
|
||||||
return nil, errors.New("not a media file")
|
return nil, errors.New("not a media file")
|
||||||
}
|
}
|
||||||
return m, nil
|
return m, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user