37 lines
796 B
Go
37 lines
796 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"net/http"
|
|
|
|
"dev.sum7.eu/genofire/golang-lib/file"
|
|
"github.com/bdlm/log"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
|
|
|
"dev.sum7.eu/genofire/oven-exporter/api"
|
|
)
|
|
|
|
type configData struct {
|
|
API *api.Client `toml:"api"`
|
|
Listen string `toml:"listen"`
|
|
}
|
|
|
|
func main() {
|
|
configPath := "config.toml"
|
|
|
|
flag.StringVar(&configPath, "c", configPath, "path to configuration file")
|
|
|
|
flag.Parse()
|
|
|
|
config := &configData{}
|
|
if err := file.ReadTOML(configPath, config); err != nil {
|
|
log.Panicf("open config file: %s", err)
|
|
}
|
|
config.API.SetToken(config.API.Token)
|
|
|
|
prometheus.MustRegister(config)
|
|
http.Handle("/metrics", promhttp.Handler())
|
|
log.Fatal(http.ListenAndServe(config.Listen, nil))
|
|
}
|