mirror of
https://github.com/h44z/wg-portal
synced 2025-02-26 05:49:14 +00:00
36 lines
721 B
Go
36 lines
721 B
Go
// source taken from https://git.prolicht.digital/golib/healthcheck/-/blob/master/cmd/hc/main.go
|
|
|
|
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
// main checks the given URL, if the response is not 200, it will return with exit code 1
|
|
// on success, exit code 0 will be returned
|
|
func main() {
|
|
os.Exit(checkWebEndpointFromArgs())
|
|
}
|
|
|
|
func checkWebEndpointFromArgs() int {
|
|
if len(os.Args) < 2 {
|
|
return 1
|
|
}
|
|
if status := checkWebEndpoint(os.Args[1]); !status {
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func checkWebEndpoint(url string) bool {
|
|
client := &http.Client{
|
|
Timeout: time.Second * 2,
|
|
}
|
|
if resp, err := client.Get(url); err != nil || resp.StatusCode < 200 || resp.StatusCode > 299 {
|
|
return false
|
|
}
|
|
return true
|
|
}
|