O código apresentado até o final do curso não é capaz de reconhecer letras no comando , colocando assim o valor "0" ,então como faço para ele conhecer se tem uma letra no comando , aqui o meu código que segue mais ou menos a do professor:
package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
"strconv"
"strings"
"time"
)
const limete = 3
const delay = 5
func main() {
exibeNome()
for {
exibeMenu()
comando := leComando()
fmt.Println("")
switch comando {
case 1:
monitoraSites()
case 2:
exibeLog()
case 0:
os.Exit(0)
default:
fmt.Println("Não conheço esse comando.")
os.Exit(-1)
}
}
}
func exibeNome() {
nome := "Pedro"
versao := 1.13
fmt.Println("Olá sr:", nome, ".")
fmt.Println("Essa é a versão ", versao, " do GO")
}
func exibeMenu() {
fmt.Println("Qual comando você deseja fazer agora.")
fmt.Println("1-Monitorar sites.")
fmt.Println("2-Exibir Logs.")
fmt.Println("0-Sair do programa.")
}
func leComando() int {
var comando int
fmt.Scan(&comando)
return comando
}
func monitoraSites() {
sites := leArquivoSites()
for tentativas := 1; tentativas <= limete; tentativas++ {
for i, site := range sites {
fmt.Println("Monitorando o item", i, ", site", site)
testaSites(site)
}
fmt.Println("")
time.Sleep(delay * time.Minute)
}
}
func testaSites(site string) {
resp, err := http.Get(site)
if resp.StatusCode == 200 {
fmt.Println("foi carregado com sucesso;Status Code:", resp.StatusCode)
registraLogs(site, true)
} else {
fmt.Println("teve problemas;Status Code:", resp.StatusCode)
registraLogs(site, false)
}
if err != nil {
fmt.Println("Ocorreu um erro:", err)
}
}
func leArquivoSites() []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
}
func registraLogs(site string, Status bool) {
arquivo, err := os.OpenFile("logs.txt", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
if err != nil {
fmt.Println("Ocorreu um erro:", err)
}
arquivo.WriteString(time.Now().Format("2/1/2006 15:4:5 Monday") + "-" + site + "-ONLINE:" + strconv.FormatBool(Status) + "\n")
arquivo.Close()
}
func exibeLog() {
arquivo, err := ioutil.ReadFile("logs.txt")
if err != nil {
fmt.Println("Ocorreu um erro", err)
}
fmt.Println(string(arquivo))
}