diff options
| author | Christine Dodrill <me@christine.website> | 2018-10-04 18:37:12 -0700 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2018-10-04 18:37:12 -0700 |
| commit | 1ea65cb9255af99adcf3cd8f55e6e2f336408a73 (patch) | |
| tree | 4ecf120976ef7553b4c578fa43b073592fdd8926 /tools | |
| parent | 7103fa3380d0038b4e1a452ef6aa8f3c3a9298ca (diff) | |
| download | x-1ea65cb9255af99adcf3cd8f55e6e2f336408a73.tar.xz x-1ea65cb9255af99adcf3cd8f55e6e2f336408a73.zip | |
tools/ghstat: move github status library to a new-style Go library
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/ghstat/main.go | 50 | ||||
| -rw-r--r-- | tools/ghstat/types.go | 60 |
2 files changed, 30 insertions, 80 deletions
diff --git a/tools/ghstat/main.go b/tools/ghstat/main.go index f86861e..91f260d 100644 --- a/tools/ghstat/main.go +++ b/tools/ghstat/main.go @@ -1,11 +1,14 @@ package main import ( + "encoding/json" "flag" "fmt" "log" + "net/http" "os" - "time" + + "github.com/Xe/x/web/ghstat" ) var ( @@ -19,7 +22,15 @@ func main() { flag.Parse() if *messageFlag { - m, err := getMessage() + req := ghstat.LastMessage() + resp, err := http.DefaultClient.Do(req) + if err != nil { + log.Fatal(err) + } + + var m ghstat.Message + defer resp.Body.Close() + err = json.NewDecoder(resp.Body).Decode(&m) if err != nil { log.Fatal(err) } @@ -27,28 +38,27 @@ func main() { fmt.Printf("Last message:\n") fmt.Printf("Status: %s\n", m.Status) fmt.Printf("Message: %s\n", m.Body) + fmt.Printf("Time: %s\n", m.CreatedOn) - t, err := time.Parse(time.RFC3339, m.CreatedOn) - if err != nil { - log.Fatal(err) - } + return + } - fmt.Printf("Time: %s\n", t.Format(time.ANSIC)) - } else { - s, err := getStatus() - if err != nil { - log.Fatal(err) - } + req := ghstat.LastStatus() + resp, err := http.DefaultClient.Do(req) + if err != nil { + log.Fatal(err) + } - t, err := time.Parse(time.RFC3339, s.LastUpdated) - if err != nil { - log.Fatal(err) - } + var s ghstat.Status + defer resp.Body.Close() + err = json.NewDecoder(resp.Body).Decode(&s) + if err != nil { + log.Fatal(err) + } - fmt.Printf("Status: %s (%s)\n", s.Status, t.Format(time.ANSIC)) + fmt.Printf("Status: %s (%s)\n", s.Status, s.LastUpdated) - if s.Status != "good" { - os.Exit(1) - } + if s.Status != "good" { + os.Exit(1) } } diff --git a/tools/ghstat/types.go b/tools/ghstat/types.go deleted file mode 100644 index ef824bd..0000000 --- a/tools/ghstat/types.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -import ( - "encoding/json" - "io/ioutil" - "net/http" -) - -type Status struct { - Status string `json:"status"` - LastUpdated string `json:"last_updated"` -} - -type Message struct { - Status string `json:"status"` - Body string `json:"body"` - CreatedOn string `json:"created_on"` -} - -func getMessage() (Message, error) { - m := Message{} - - resp, err := http.Get("https://status.github.com/api/last-message.json") - if err != nil { - return Message{}, err - } - defer resp.Body.Close() - content, err := ioutil.ReadAll(resp.Body) - if err != nil { - return Message{}, err - } - - err = json.Unmarshal(content, &m) - if err != nil { - return Message{}, err - } - - return m, nil -} - -func getStatus() (Status, error) { - s := Status{} - - resp, err := http.Get("https://status.github.com/api/status.json") - if err != nil { - return Status{}, err - } - defer resp.Body.Close() - content, err := ioutil.ReadAll(resp.Body) - if err != nil { - return Status{}, err - } - - err = json.Unmarshal(content, &s) - if err != nil { - return Status{}, err - } - - return s, nil -} |
