1
resposta

[Projeto] Monitoramento de Sites

O código abaixo foi uma forma que eu pensei para deixar mais dinâmico e fazer com que o usuário digite o site desejado.

package main

import (
    "fmt"
    "net/http"
    "os"
    "time"
)

func main() {

    infoSistema()
    dadosCadastro()
    for {
        exibeMenu()
        comando := lerComando()

        //fmt.Scan(&comando)

        switch comando {
        case 1:
            iniciarMonitoramento()
        case 2:
            fmt.Println("Opção 2 - Exibir Logs")
        case 0:
            fmt.Println("Opção 0 - Sair do sistema")
            os.Exit(0)
        default:
            fmt.Println("Opção inválida.")
            os.Exit(-1)
        }
    }

}

func infoSistema() {
    now := time.Now()

    fmt.Println(now.Format("Hora Atual: " + "15:4"))

    fmt.Println("Sistema para verificar se os sites estão onlines.")
    fmt.Println("Versão do Sistema 1.1")

}

func dadosCadastro() {
    fmt.Print("Digite o seu Nome: ")
    var nome string
    fmt.Scan(&nome)
    fmt.Println("Olá, Sr(a)", nome)
}

func exibeMenu() {
    fmt.Println("Escolha alguma das opções abaixo: ")
    fmt.Println("1- Iniciar o monitoramento")
    fmt.Println("2- Exibir Logs")
    fmt.Println("0- Sair")

}

func lerComando() int {
    var comandoLido int
    fmt.Scan(&comandoLido)
    //fmt.Println("O comando escolhido foi ", comandoLido)
    return comandoLido
}

func iniciarMonitoramento() {
    fmt.Println("Opção 1 - Iniciar monitoramento")
    fmt.Print("Digite o site: ")
    var site string
    fmt.Scan(&site)
    //site := "https://www.alura.com.br/555"
    var https string = "https://"
    resp, _ := http.Get(https + site)

    if resp.StatusCode == 200 {
        fmt.Println("Site: ", site, "Online!")
    } else {
        fmt.Println("Site: ", site, "Offline!")
        fmt.Println("Status: ", resp.StatusCode)
    }
}
1 resposta

Olá Matheus, você criou um menu para o usuário escolher a opção desejada, e utilizou a função os.Exit() para encerrar o programa quando necessário. Muito bom :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software