diff --git a/arguments.go b/arguments.go index 2a9fef7..3b74435 100644 --- a/arguments.go +++ b/arguments.go @@ -34,8 +34,8 @@ Options: type arguments struct { filenames []string concurrency int - recursive bool timeout time.Duration + recursive bool verbose bool } @@ -65,8 +65,8 @@ func getArgs() (arguments, error) { return arguments{ args[""].([]string), int(c), - args["--recursive"].(bool), time.Duration(t) * time.Second, + args["--recursive"].(bool), args["--verbose"].(bool), }, nil } diff --git a/main.go b/main.go index 4957d72..5c647f2 100644 --- a/main.go +++ b/main.go @@ -52,7 +52,13 @@ func listFilesRecursively(fs []string) ([]string, error) { } if i.IsDir() { - gs = append(gs, listFiles(f)...) + fs, err := listFiles(f) + + if err != nil { + return nil, err + } + + gs = append(gs, fs...) } else { gs = append(gs, f) } diff --git a/utils.go b/utils.go index d9eaa80..e9adbad 100644 --- a/utils.go +++ b/utils.go @@ -27,32 +27,30 @@ func indent(s string) string { return text.Indent(s, "\t") } -func listFiles(d string) []string { - fc := make(chan string, 1024) - - go func() { - filepath.Walk(d, func(p string, f os.FileInfo, err error) error { - b, err := regexp.MatchString("(^\\.)|(/\\.)", p) +func listFiles(d string) ([]string, error) { + fs := []string{} - if err != nil { - return err - } + err := filepath.Walk(d, func(f string, i os.FileInfo, err error) error { + if err != nil { + return err + } - if !f.IsDir() && !b && isMarkupFile(p) { - fc <- p - } + b, err := regexp.MatchString("(^\\.)|(/\\.)", f) - return nil - }) + if err != nil { + return err + } - close(fc) - }() + if !i.IsDir() && !b && isMarkupFile(f) { + fs = append(fs, f) + } - fs := []string{} + return nil + }) - for f := range fc { - fs = append(fs, f) + if err != nil { + return nil, err } - return fs + return fs, nil } diff --git a/utils_test.go b/utils_test.go index 3d6ce34..25e0d1c 100644 --- a/utils_test.go +++ b/utils_test.go @@ -8,8 +8,9 @@ import ( ) func TestListFiles(t *testing.T) { - fs := listFiles(".") + fs, err := listFiles(".") + assert.Equal(t, nil, err) assert.NotEqual(t, 0, len(fs)) for _, f := range fs {