package main import ( "context" "flag" "github.com/sirrobot01/decypharr/cmd/decypharr" "github.com/sirrobot01/decypharr/internal/config" "log" "net/http" _ "net/http/pprof" "os" "os/signal" "runtime/debug" "syscall" ) func main() { defer func() { if r := recover(); r != nil { log.Printf("FATAL: Recovered from panic in main: %v\n", r) debug.PrintStack() } }() var configPath string flag.StringVar(&configPath, "config", "/data", "path to the data folder") flag.Parse() config.SetConfigPath(configPath) config.Get() if os.Getenv("ENABLE_PPROF") == "true" { go func() { log.Println("Starting pprof server on :6060") if err := http.ListenAndServe(":6060", nil); err != nil { log.Printf("pprof server error: %v", err) } }() } // Create a context canceled on SIGINT/SIGTERM ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() if err := decypharr.Start(ctx); err != nil { log.Fatal(err) } }