|
|
@ -1,6 +1,9 @@ |
|
|
package main |
|
|
package main |
|
|
|
|
|
|
|
|
import "os" |
|
|
import ( |
|
|
|
|
|
"os" |
|
|
|
|
|
"sync" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
const filesCapacity = 1024 |
|
|
const filesCapacity = 1024 |
|
|
|
|
|
|
|
|
@ -8,13 +11,23 @@ func main() { |
|
|
args, err := getArguments(nil) |
|
|
args, err := getArguments(nil) |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
if err != nil { |
|
|
printToStderr(err.Error()) |
|
|
fail(err) |
|
|
os.Exit(1) |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fc := make(chan string, filesCapacity) |
|
|
fc := make(chan string, filesCapacity) |
|
|
|
|
|
ec := make(chan error, 64) |
|
|
|
|
|
wg := sync.WaitGroup{} |
|
|
|
|
|
|
|
|
|
|
|
go findMarkupFiles(args.filenames, args.recursive, fc, ec) |
|
|
|
|
|
|
|
|
go findMarkupFiles(args.filenames, args.recursive, fc) |
|
|
wg.Add(1) |
|
|
|
|
|
go func() { |
|
|
|
|
|
for e := range ec { |
|
|
|
|
|
fail(e) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
wg.Done() |
|
|
|
|
|
}() |
|
|
|
|
|
|
|
|
rc := make(chan fileResult, filesCapacity) |
|
|
rc := make(chan fileResult, filesCapacity) |
|
|
s := newSemaphore(args.concurrency) |
|
|
s := newSemaphore(args.concurrency) |
|
|
@ -33,6 +46,8 @@ func main() { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
wg.Wait() |
|
|
|
|
|
|
|
|
if !ok { |
|
|
if !ok { |
|
|
os.Exit(1) |
|
|
os.Exit(1) |
|
|
} |
|
|
} |
|
|
|