diff options
author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-01 20:27:00 +0200 |
---|---|---|
committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2024-05-01 20:27:00 +0200 |
commit | 3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13 (patch) | |
tree | 71f1da93e616d3511d302c7802ae2fabc850cf13 /main.go | |
download | cerrado-3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13.tar.gz cerrado-3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13.tar.bz2 cerrado-3fb9c66ffa0bf87cbd7cc1b5f4129f3447e94c13.zip |
feat: Initial http server code
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +package main + +import ( + "context" + "log/slog" + "net/http" + "os" + "os/signal" + "time" + + "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 { + os.Exit(1) + } +} + +func run(ctx context.Context) error { + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { + if _, err := w.Write([]byte("Hello world!")); err != nil { + slog.Error("Error handling index", "error", err) + } + }) + serverTask := worker.NewServerTask(&http.Server{Handler: mux, Addr: "0.0.0.0:8080"}) + + pool := worker.NewTaskPool() + pool.AddTask("http-server", 5*time.Second, serverTask) + + return pool.Start(ctx) +} |