Skip to content
This repository was archived by the owner on Nov 27, 2018. It is now read-only.

Commit 0d81ec2

Browse files
author
Sergey Kibish
committed
Rewrite shutdown for authorizer
1 parent 60f5bfc commit 0d81ec2

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

cmd/authorizer/main.go

+17-13
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package main
22

33
import (
44
"log"
5+
"net/http"
56
"os"
67
"os/signal"
8+
"syscall"
79

810
"github.com/skibish/trashdiena/pkg/config"
911

@@ -25,22 +27,24 @@ func main() {
2527

2628
sc := slack.New(c.ClientID, c.ClientSecret, c.RedirectURL)
2729
sg := storage.New(fbase)
28-
2930
a := api.New(sc, sg)
30-
go func() {
31-
log.Fatal(a.Start(c.APIPort))
32-
}()
33-
34-
// handle all the gracefull shutdowns
35-
sigs := make(chan os.Signal, 1)
36-
signal.Notify(sigs, os.Interrupt)
3731

38-
select {
39-
case <-sigs:
32+
// shutdown gracefully
33+
go func() {
34+
sigs := make(chan os.Signal, 1)
35+
signal.Notify(sigs, os.Interrupt, syscall.SIGTERM)
36+
<-sigs
4037
log.Println("Performing shutdown...")
41-
if a != nil {
42-
a.Shutdown()
38+
if err := a.Shutdown(); err != nil {
39+
log.Printf("Failed to shutdown server: %v", err)
4340
}
44-
log.Println("Exiting...")
41+
}()
42+
43+
log.Printf("Authorizer is ready to listen on port: %s", c.APIPort)
44+
if err := a.Start(c.APIPort); err != http.ErrServerClosed {
45+
log.Printf("Server failed: %v", err)
46+
os.Exit(1)
4547
}
48+
49+
log.Println("Exiting...")
4650
}

0 commit comments

Comments
 (0)