From 720947236130c9bba5ca508a3f1572f7d8cf3797 Mon Sep 17 00:00:00 2001 From: Yota Toyama Date: Tue, 21 Nov 2017 21:33:16 +0900 Subject: [PATCH] Use markup file finder --- main.go | 9 ++++----- utils.go | 48 ------------------------------------------------ utils_test.go | 24 ------------------------ 3 files changed, 4 insertions(+), 77 deletions(-) diff --git a/main.go b/main.go index fd8bff9..3bc31af 100644 --- a/main.go +++ b/main.go @@ -12,15 +12,14 @@ func main() { fail(err) } - fc := make(chan string, maxOpenFiles) - ec := make(chan error, 64) + m := newMarkupFileFinder() wg := sync.WaitGroup{} - go findMarkupFiles(args.filenames, args.recursive, fc, ec) + go m.Find(args.filenames, args.recursive) wg.Add(1) go func() { - for e := range ec { + for e := range m.Errors() { fail(e) } @@ -31,7 +30,7 @@ func main() { s := newSemaphore(args.concurrency) c := newFileChecker(args.timeout, args.documentRoot, s) - go c.CheckMany(fc, rc) + go c.CheckMany(m.Filenames(), rc) ok := true diff --git a/utils.go b/utils.go index 35d6428..bd369c9 100644 --- a/utils.go +++ b/utils.go @@ -3,8 +3,6 @@ package main import ( "fmt" "os" - "path/filepath" - "regexp" "strings" "github.com/fatih/color" @@ -34,49 +32,3 @@ func fail(err error) { func indent(s string) string { return text.Indent(s, "\t") } - -func listDirectory(d string, fc chan<- string) error { - return filepath.Walk(d, func(f string, i os.FileInfo, err error) error { - if err != nil { - return err - } - - b, err := regexp.MatchString("(^\\.)|(/\\.)", f) - - if err != nil { - return err - } - - if !i.IsDir() && !b && isMarkupFile(f) { - fc <- f - } - - return nil - }) -} - -func findMarkupFiles(fs []string, recursive bool, fc chan<- string, ec chan<- error) { - for _, f := range fs { - i, err := os.Stat(f) - - if err != nil { - ec <- err - continue - } - - if i.IsDir() && recursive { - err := listDirectory(f, fc) - - if err != nil { - ec <- err - } - } else if i.IsDir() { - ec <- fmt.Errorf("%v is not a file", f) - } else { - fc <- f - } - } - - close(fc) - close(ec) -} diff --git a/utils_test.go b/utils_test.go index 330c53b..06ab7d0 100644 --- a/utils_test.go +++ b/utils_test.go @@ -1,25 +1 @@ package main - -import ( - "os" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestListDirectory(t *testing.T) { - fc := make(chan string, 1024) - err := listDirectory(".", fc) - close(fc) - - assert.Equal(t, nil, err) - assert.NotEqual(t, 0, len(fc)) - - for f := range fc { - i, err := os.Stat(f) - - assert.True(t, isMarkupFile(f)) - assert.Equal(t, nil, err) - assert.False(t, i.IsDir()) - } -}