diff options
Diffstat (limited to 'backend-go/fix_main.py')
| -rw-r--r-- | backend-go/fix_main.py | 34 |
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) |
