aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go32
1 files changed, 31 insertions, 1 deletions
diff --git a/main.go b/main.go
index 7c80564..ba441fe 100644
--- a/main.go
+++ b/main.go
@@ -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"})