From 2f99e79b8a12f41df0d938b921e59ec3a253aca5 Mon Sep 17 00:00:00 2001 From: Kevin Lyda <kevin@ie.suberic.net> Date: Wed, 1 Feb 2017 09:46:47 +0000 Subject: [PATCH] Initial pass at templates. --- cmd/gqgmcd/index.html | 16 ++++++++++++++++ cmd/gqgmcd/main.go | 30 ++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 cmd/gqgmcd/index.html diff --git a/cmd/gqgmcd/index.html b/cmd/gqgmcd/index.html new file mode 100644 index 0000000..ddda571 --- /dev/null +++ b/cmd/gqgmcd/index.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <title>Geiger Counter</title> + </head> + <body> + <ul> + <li>Model: {{.Model}}</li> + <li>Version: {{.Version}}</li> + <li>Serial: {{.Serial}}</li> + <li>Volts: {{.Volts}}</li> + <li>CPM: {{.CPM}}</li> + </ul> + </body> +</html> diff --git a/cmd/gqgmcd/main.go b/cmd/gqgmcd/main.go index e7887ec..c8fa807 100644 --- a/cmd/gqgmcd/main.go +++ b/cmd/gqgmcd/main.go @@ -9,22 +9,44 @@ package main import ( "flag" - "fmt" + "html/template" "log" "net/http" "github.com/prometheus/client_golang/prometheus/promhttp" + "gitlab.com/lyda/gqgmc/devices/geiger" ) var addr = flag.String("listen-address", ":8080", "Address for HTTP requests.") +var device = flag.String("device", "/dev/gqgmc", "Device for Geiger Counter.") +var model = flag.String("model", "gqgmc", "Model of Geiger Counter.") -func metricsHandler(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Some metrics.") +type indexPage struct { + Model string + Version string + Serial string + Volts int16 + CPM uint16 +} + +var gc geiger.Counter +var indexPg indexPage + +func indexHandler(w http.ResponseWriter, r *http.Request) { + indexPg.CPM, _ = gc.GetCPM() + t, _ := template.ParseFiles("index.html") + t.Execute(w, indexPg) } func main() { flag.Parse() - http.HandleFunc("/", metricsHandler) + + gc, _ = geiger.New(geiger.Config{Model: *model, Device: *device}) + indexPg.Model = gc.Model() + indexPg.Version = gc.Version() + indexPg.Serial, _ = gc.SerialNum() + indexPg.Volts, _ = gc.Volts() + http.HandleFunc("/", indexHandler) http.Handle("/metrics", promhttp.Handler()) log.Fatal(http.ListenAndServe(*addr, nil)) } -- GitLab