package main import ( _ "embed" "log" "os" "os/signal" "syscall" "net/http" "time" "github.com/gorilla/mux" ) const ( Addr = "127.0.0.1:8000" ReadTimeout = 15 * time.Second WriteTimeout = 15 * time.Second ) //go:embed VERSION.txt var versionTxt string var router *mux.Router = mux.NewRouter() func main() { run() } func run() { log.Println("finserv finance server was started.") defer log.Println("finserv finance server was stopped.") server := &http.Server{ Handler: router, Addr: Addr, WriteTimeout: WriteTimeout, ReadTimeout: ReadTimeout, } go server.ListenAndServe() log.Printf("Serving at http://%s\n", Addr) await(syscall.SIGTERM, syscall.SIGINT) } func await(signals ...syscall.Signal) { listener := make(chan os.Signal, 1) for _, s := range signals { signal.Notify(listener, s) } sig := <-listener log.Printf("Received OS signal '%v'\n", sig) }