package main import ( "fmt" "log" ) // printResponse reads a response from the printChannel, formats it and prints it func printResponses(channels channels) { var i int for { // read a response from the printChannel for further usage response := <-channels.printChannel // define a postfix: a string attached to the end of all printed // string set in the section filtering the status code cases var postfix string var prefix string // define what color should be used to print the individual status // codes var statusCode string var color string // default values: clear the line, print, newline, green prefix = "\r\033[K" postfix = "\n" color = "green" // hide some of the requests, filter using the status code for _, codeToHide := range hide.HideCode { if response.StatusCode == codeToHide { prefix = "" postfix = "\033[K\r" color = "red" } } // color if color == "red" { statusCode = red(fmt.Sprintf("%d", response.StatusCode)) } else if color == "green" { statusCode = green(fmt.Sprintf("%d", response.StatusCode)) } // print the requests fmt.Printf("%s%.7d: %s %s%s", prefix, i, statusCode, response.FuzzWord, postfix) i++ } log.Printf("%s Done printing the responses", green("[+]")) }