Estou encontrando o seguinte problema, tanto com o código final do projeto criado e disponibilizado por vocês quanto o meu código...
Me parece que na função abaixo, o 'if' criado para informar que chegou no final do arquivo, não está funcionando como deveria ...
func leSitesDoArquivo() []string {
var sites []string
arquivo, err := os.Open("sites.txt")
if err != nil {
fmt.Println("Ocorreu um erro:", err)
}
leitor := bufio.NewReader(arquivo)
for {
linha, err := leitor.ReadString('\n')
linha = strings.TrimSpace(linha)
sites = append(sites, linha)
if err == io.EOF {
break
}
}
arquivo.Close()
return sites
}
Segue abaixo a execução do código onde é possível perceber que o arquivo 'lista.txt' foi lido porém ele continua tentando ler mesmo chegando ao final do arquivo... Ele procurar por mais uma linha ...
1 - Iniciar Monitoramento
2 - Exibir Logs
1
O comando escolhido foi 1
Monitorando...
Testando site 0 : https://www.alura.com.br
Site: https://www.alura.com.br foi acessado com sucesso
Testando site 1 : https://random-status-code.herokuapp.com
Site: https://random-status-code.herokuapp.com retornou erro! Status code: 404
Testando site 2 : https://www.caelum.com.br
Site: https://www.caelum.com.br foi acessado com sucesso
Testando site 3 : https://www.casadocodigo.com.br
Site: https://www.casadocodigo.com.br foi acessado com sucesso
Testando site 4 :
Ocorreu um erro: Get "": unsupported protocol scheme ""
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x629b0e]
goroutine 1 [running]:
main.testaSite({0x0, 0x0})
/home/faioli/go/src/monit/monitora-v1.4.go:87 +0xae
main.iniciaMonitor()
/home/faioli/go/src/monit/monitora-v1.4.go:72 +0x245
main.main()
/home/faioli/go/src/monit/monitora-v1.4.go:29 +0x152
exit status 2