From fe7eda31105b2ed7cd2fc8e5cb378b4670097bad Mon Sep 17 00:00:00 2001 From: Shantanu Date: Wed, 15 Jan 2025 00:14:10 -0800 Subject: [PATCH] extension/cmd: test extension server before integrating witih savvy record and savvy record history Signed-off-by: Shantanu --- extension/cmd/main.go | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 extension/cmd/main.go diff --git a/extension/cmd/main.go b/extension/cmd/main.go new file mode 100644 index 0000000..63e9ef2 --- /dev/null +++ b/extension/cmd/main.go @@ -0,0 +1,51 @@ +package main + +import ( + "context" + "fmt" + "os" + "os/signal" + "syscall" + + "github.com/getsavvyinc/savvy-cli/extension" +) + +func main() { + // Create a context that we'll cancel on signal + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + // Set up signal handling + sigChan := make(chan os.Signal, 1) + signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) + + // Create and start the server + processor := func(items []extension.HistoryItem) error { + for _, item := range items { + fmt.Printf("Processing item: %s\n", item.URL) + } + return nil + } + + server := extension.New(processor) + if err := server.Start(ctx); err != nil { + fmt.Printf("Error starting server: %v\n", err) + os.Exit(1) + } + + // Wait for signal + sig := <-sigChan + fmt.Printf("\nReceived signal: %v\n", sig) + fmt.Println("Shutting down server...") + + // Cancel context to trigger graceful shutdown + cancel() + + // Wait for server to close + if err := server.Close(); err != nil { + fmt.Printf("Error during shutdown: %v\n", err) + os.Exit(1) + } + + fmt.Println("Server shutdown complete") +}