package main
import "fmt" import "os" import "net/http"
func main() {
const monitoramentos = 3
exibeIntroducao()
for {
exibeMenu()
comando := leComando()
switch comando {
case 1:
iniciarMonitoramento()
case 2:
fmt.Println("Exibindo Logs...")
case 0:
fmt.Println("Saindo do programa...")
os.Exit(0)
default:
fmt.Println("Não conheço este comando")
os.Exit(-1)
}
}
}
func exibeIntroducao() { nome := "Douglas" versao := 1.1 fmt.Println("Olá, sr(a).", nome) fmt.Println("Este programa está na versão", versao) }
func exibeMenu() { fmt.Println("1- Iniciar Monitoramento") fmt.Println("2- Exibir Logs") fmt.Println("0- Sair do Programa") }
func leComando() int { var comandoLido int fmt.Scan(&comandoLido) fmt.Println("O comando escolhido foi:", comandoLido)
return comandoLido
}
func iniciarMonitoramento() { fmt.Println("Monitorando...")
sites := []string{"https://random-status-code.herokuapp.com/",
"https://www.alura.com.br", "https://www.caelum.com.br"}
for i := 0; i < monitoramentos; i++ {
for i, site := range sites {
fmt.Println("Testando o site", i, ":", site)
testaSite(site)
}
}
fmt.Println("")
fmt.Println("Testando novamente!")
fmt.Println("")
}
func testaSite(site string) {
resp, _ := http.Get(site)
if resp.StatusCode == 200 {
fmt.Println("O site:", site, "Está funcionando!")
} else {
fmt.Println("O site:", site, "Não está no ar... Status Code:", resp.StatusCode)
}