Skip to content

Commit 23976de

Browse files
committed
Add recursive directory traversal
1 parent fb70b94 commit 23976de

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

LS_Metadata_reader/metadata_parser.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"encoding/xml"
99
"fmt"
1010
"io"
11-
"io/ioutil"
1211
"math"
1312
"os"
1413
"path/filepath"
@@ -423,14 +422,14 @@ func readin(jobs <-chan string, results chan<- interface{}, wg *sync.WaitGroup,
423422
if err == nil {
424423
results <- xmlResult{filePath: filePath, content: xmlContent}
425424
} else {
426-
fmt.Fprintln(os.Stderr, "Import of", filePath, "failed")
425+
fmt.Fprintln(os.Stderr, "Import of", filePath, "failed", err.Error())
427426
}
428427
case ".mdoc":
429428
mdocContent, err := process_mdoc(filePath)
430429
if err == nil {
431430
results <- mdocResult{content: mdocContent}
432431
} else {
433-
fmt.Fprintln(os.Stderr, "Import of", filePath, "failed")
432+
fmt.Fprintln(os.Stderr, "Import of", filePath, "failed", err.Error())
434433
}
435434
default:
436435
fmt.Fprintf(os.Stderr, "Unknown file type: %s\n", filePath)
@@ -519,15 +518,21 @@ func startProgressReporter(progressTracker *ProgressTracker) {
519518
func collectAllFiles(directories []string) ([]string, error) {
520519
var allFiles []string
521520
for _, dir := range directories {
522-
files, err := ioutil.ReadDir(dir)
523-
if err != nil {
524-
return nil, err
525-
}
526-
for _, file := range files {
527-
if !file.IsDir() && !isHidden(file.Name()) && (filepath.Ext(file.Name()) == ".xml" || filepath.Ext(file.Name()) == ".mdoc") {
528-
allFiles = append(allFiles, filepath.Join(dir, file.Name()))
521+
err := filepath.WalkDir(dir, func(path string, d os.DirEntry, err error) error {
522+
if err != nil {
523+
return err
524+
}
525+
file, err := os.Stat(path)
526+
if err == nil && !file.IsDir() && !isHidden(file.Name()) && (filepath.Ext(file.Name()) == ".xml" || filepath.Ext(file.Name()) == ".mdoc") {
527+
allFiles = append(allFiles, path)
529528
}
529+
return err
530+
})
531+
532+
if err != nil {
533+
fmt.Printf("Error collecting files in path %q: %s\n", dir, err.Error())
530534
}
535+
531536
}
532537
return allFiles, nil
533538
}

0 commit comments

Comments
 (0)