diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-04 23:16:38 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-04 23:17:02 +0200 |
commit | 8a2461aa05895cc7828bc9619b50fa5dee5ed1f4 (patch) | |
tree | 86c6848d9c9a7d7b2d272fa43af66350d2cd1d0e /main.go | |
parent | 3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13 (diff) | |
download | cerrado-8a2461aa05895cc7828bc9619b50fa5dee5ed1f4.tar.gz cerrado-8a2461aa05895cc7828bc9619b50fa5dee5ed1f4.tar.bz2 cerrado-8a2461aa05895cc7828bc9619b50fa5dee5ed1f4.zip |
feat: Add config parsing
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -2,16 +2,20 @@ package main import ( "context" + "encoding/json" + "flag" "log/slog" "net/http" "os" "os/signal" "time" + "git.gabrielgio.me/cerrado/pkg/config" "git.gabrielgio.me/cerrado/pkg/worker" ) func main() { + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, os.Kill) defer stop() if err := run(ctx); err != nil { @@ -20,10 +24,36 @@ func main() { } func run(ctx context.Context) error { + var ( + configPath = flag.String("config", "config.example.scfg", "File path for the configuration file") + ) + + flag.Parse() + mux := http.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { - if _, err := w.Write([]byte("Hello world!")); err != nil { + + f, err := os.Open(*configPath) + if err != nil { + slog.Error("Error openning config file json", "error", err, "path", *configPath) + return + } + + c, err := config.Parse(f) + if err != nil { + slog.Error("Error parsing config", "error", err, "path", *configPath) + return + } + + b, err := json.MarshalIndent(c, "", " ") + if err != nil { + slog.Error("Error parsing json", "error", err) + return + } + + if _, err := w.Write(b); err != nil { slog.Error("Error handling index", "error", err) + return } }) serverTask := worker.NewServerTask(&http.Server{Handler: mux, Addr: "0.0.0.0:8080"}) |