summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2024-03-25 20:04:33 +0100
committerxengineering <me@xengineering.eu>2024-03-25 20:04:33 +0100
commit7ef343e871c0053534eab74763c4a48346669976 (patch)
tree3c4b8180a9d75556772ce94571f12359f3e1522b /main.go
parent18b533f3b5dbb190d5d6f8769c5f7ef6052e0545 (diff)
downloadwebiot-7ef343e871c0053534eab74763c4a48346669976.tar
webiot-7ef343e871c0053534eab74763c4a48346669976.tar.zst
webiot-7ef343e871c0053534eab74763c4a48346669976.zip
Move configuration code to a separate file
Diffstat (limited to 'main.go')
-rw-r--r--main.go37
1 files changed, 0 insertions, 37 deletions
diff --git a/main.go b/main.go
index 4331123..48a00a5 100644
--- a/main.go
+++ b/main.go
@@ -1,33 +1,17 @@
package main
import (
- "encoding/json"
"embed"
"flag"
"fmt"
"log"
"net/http"
- "net/netip"
- "os"
"text/template"
)
//go:embed simple.css/simple.css templates/index.html
var static embed.FS
-type RuntimeConfig struct {
- Devices DevicesConfig
- Web WebConfig
-}
-
-type DevicesConfig struct {
- Hs100 []Hs100Conf
-}
-
-type WebConfig struct {
- Listen netip.AddrPort
-}
-
func main() {
configPath := parseFlags()
c := parseConfig(configPath)
@@ -51,27 +35,6 @@ func parseFlags() string {
return r
}
-// parseConfig() parses and validates the runtime configuration file and
-// returns it as Go datastructure.
-func parseConfig(path string) RuntimeConfig {
- data, err := os.ReadFile(path)
- if err != nil {
- log.Fatalf("Could not read '%s'!", path)
- }
-
- if !json.Valid(data) {
- log.Fatalf("%s contains invalid JSON!", path)
- }
-
- config := RuntimeConfig{}
- err = json.Unmarshal(data, &config)
- if err != nil {
- log.Fatalf("Could not parse configuration file:\n%s\n", err)
- }
-
- return config
-}
-
// index() returns a HTTP handler for the index page.
func index(devices DevicesConfig) func(http.ResponseWriter, *http.Request) {
tmpl, err := template.ParseFS(static, "templates/index.html")