Files
server-scripts/haven-notify/main.go
Jose Henrique b1cdf15cc8
Some checks failed
Check scripts syntax / check-scripts-syntax (push) Successful in 3s
Test automated-nfs-backup / test-automated-nfs-backup (push) Successful in 4s
Haven Notify Build and Deploy / Build Haven Notify Image (pull_request) Has been cancelled
Haven Notify Build and Deploy / Build Haven Notify Image (PR) (pull_request) Has been cancelled
Haven Notify Build and Deploy / Deploy Haven Notify (internal) (pull_request) Has been cancelled
Haven Notify Build and Deploy / Test Haven Notify (pull_request) Has been cancelled
adding test containers
2026-07-16 09:14:51 -03:00

38 lines
936 B
Go

package main
import (
"context"
"errors"
"fmt"
"log"
"net/http"
"os"
"os/signal"
"syscall"
)
const listenAddress = ":8080"
func main() {
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
logger := log.Default()
if err := run(ctx, os.Getenv("WEBHOOK_URL"), listenAddress, logger); err != nil && !errors.Is(err, http.ErrServerClosed) {
logger.Fatalf("Server stopped unexpectedly: %v", err)
}
}
func run(ctx context.Context, webhookURL, address string, logger *log.Logger) error {
app, err := newApplication(applicationConfig{WebhookURL: webhookURL, Logger: logger})
if err != nil {
return fmt.Errorf("configuration failed: %w", err)
}
listener, err := netListen("tcp", address)
if err != nil {
return fmt.Errorf("listen on %s: %w", address, err)
}
logger.Printf("Starting server on %s", address)
return serve(ctx, newHTTPServer(app.handler()), listener)
}