summaryrefslogtreecommitdiff
path: root/backend-go/fix_main.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend-go/fix_main.py')
-rw-r--r--backend-go/fix_main.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/backend-go/fix_main.py b/backend-go/fix_main.py
new file mode 100644
index 0000000..594da1d
--- /dev/null
+++ b/backend-go/fix_main.py
@@ -0,0 +1,34 @@
+import re
+import sys
+
+with open('/home/kboz/eve_haul/backend-go/cmd/eve_haul_go/main.go', 'r') as f:
+ text = f.read()
+
+old_server_logic = r'''log\.Println\("Listening on :8000"\)
+if err := server\.ListenAndServe\(\); err != nil \{
+log\.Fatalf\("Server failed: %v", err\)
+\}'''
+
+new_server_logic = '''go func() {
+\tlog.Println("Listening on :8000")
+\tif err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
+\t\tlog.Fatalf("Server failed: %v", err)
+\t}
+}()
+
+quit := make(chan os.Signal, 1)
+signal.Notify(quit, os.Interrupt, syscall.SIGTERM)
+<-quit
+log.Println("\\nShutting down server gracefully...")
+
+ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+defer cancel()
+if err := server.Shutdown(ctx); err != nil {
+\tlog.Fatalf("Server forced to shutdown: %v", err)
+}
+log.Println("Server exited")'''
+
+text = re.sub(old_server_logic, new_server_logic, text)
+
+with open('/home/kboz/eve_haul/backend-go/cmd/eve_haul_go/main.go', 'w') as f:
+ f.write(text)