Files
honeydany/main.go
T
2025-09-28 06:48:03 +01:00

53 lines
936 B
Go

package main
import (
"context"
"flag"
"fmt"
"log"
"os"
"os/signal"
"syscall"
"honeydany/app"
)
func main() {
cfgPath := flag.String("config", "config.json", "path to config.json")
flag.Parse()
// ensure config exists (auto-generate default if missing)
if err := app.EnsureConfig(*cfgPath); err != nil {
log.Fatalf("ensure config: %v", err)
}
cfg, err := app.LoadConfig(*cfgPath)
if err != nil {
log.Fatalf("load config: %v", err)
}
a, err := app.NewApp(cfg)
if err != nil {
log.Fatalf("create app: %v", err)
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// handle signals
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
go func() {
<-sigCh
fmt.Println("signal received, shutting down")
cancel()
a.Shutdown()
}()
if err := a.Run(ctx); err != nil {
log.Fatalf("app run: %v", err)
}
fmt.Println("honeypot stopped")
}