package server import ( "context" "fmt" "log" "net/http" ) func index(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "index") } func wsEndpoint(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello") } func setupRoutes() { http.HandleFunc("/", index) http.HandleFunc("/ws", wsEndpoint) } func SetupAndRun(port string, sighup *chan bool) { setupRoutes() srv := &http.Server{Addr: port} go func() { <-*sighup log.Println("Shutting down the webserver") srv.Shutdown(context.TODO()) }() log.Fatal(srv.ListenAndServe()) }