package main import ( "fmt" "log" "net/http" "sync" "time" "github.com/foxdeveloper/namecheck" _ "github.com/foxdeveloper/namecheck/github" _ "github.com/foxdeveloper/namecheck/twitter" ) func handler(w http.ResponseWriter, r *http.Request) { var wg sync.WaitGroup ch := make(chan string) for _, sn := range namecheck.SocialNetworks() { wg.Add(1) go func(sn namecheck.SocialNetwork) { namecheck.Namecheck(sn, r.URL.Path[1:], &wg, ch) }(sn) } go func() { wg.Wait() close(ch) }() for v := range ch { fmt.Fprintf(w, "%s", v) } } func main() { start := time.Now() http.HandleFunc("/", handler) log.Fatal(http.ListenAndServe(":8080", nil)) elapsed := time.Since(start) log.Printf("Took %s", elapsed) }