diff options
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"}) |