Browse Source

Create URL checker object

renovate/configure
Yota Toyama 8 years ago
parent
commit
b0b82cafb3
  1. 48
      url_checker.go

48
url_checker.go

@ -0,0 +1,48 @@
package main
import (
"net/http"
"time"
"github.com/fatih/color"
)
type urlChecker struct {
client http.Client
verbose bool
}
func newURLChecker(timeout time.Duration, verbose bool) urlChecker {
return urlChecker{http.Client{Timeout: timeout}, verbose}
}
func (c urlChecker) Check(s string) bool {
_, err := c.client.Get(s)
if s := color.New(color.FgCyan).SprintFunc()(s); err != nil {
printToStderr(
color.New(color.FgRed).SprintFunc()("ERROR") + "\t" + s + "\t" + err.Error())
} else if err == nil && c.verbose {
printToStderr(color.New(color.FgGreen).SprintFunc()("OK") + "\t" + s)
}
return err == nil
}
func (c urlChecker) CheckMany(ss []string) {
bs := make(chan bool, len(ss))
for _, s := range ss {
go func() {
bs <- c.Check()
}()
}
ok := true
for i := 0; i < len(ss); i++ {
ok = ok && <-bs
}
return ok
}
Loading…
Cancel
Save