From 84932c2449b1a49b125d525fa0f4ae66537c1687 Mon Sep 17 00:00:00 2001 From: leah Date: Wed, 26 Jan 2022 19:28:26 +0000 Subject: [PATCH] use the config file --- go.mod | 2 +- go.sum | 1 + main.go | 44 +++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index fdc32d7..a58f908 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module tildegit.org/southlondon/admin go 1.17 -require gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect +require gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b diff --git a/go.sum b/go.sum index 97f8991..e387ff0 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go index 0fde6a1..dbdbd58 100644 --- a/main.go +++ b/main.go @@ -3,13 +3,55 @@ package main import ( "fmt" "html" + "io/ioutil" + "log" "net/http" + + "gopkg.in/yaml.v3" ) +type ServerConfig struct { + Name string + Homepage string +} +type AdminConfig struct { + WebRoot string +} +type AuthConfig struct { + GiteaURL string + AuthorizedUsers []string +} +type Config struct { + Server ServerConfig + Admin AdminConfig + Auth AuthConfig +} + +var config = new(Config) + +func loadConfig() (err error) { + configfile, err := ioutil.ReadFile("config.yml") + if err != nil { + return err + } + + err = yaml.Unmarshal(configfile, &config) + return err +} + func main() { + err := loadConfig() + if err != nil { + log.Fatal("oh no !!!") + } + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) }) - http.ListenAndServe("0.0.0.0:8080", nil) + err = http.ListenAndServe(":8080", nil) + if err != nil { + log.Fatal(err) + } + }