diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/configs/.gitkeep b/configs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/.gitkeep b/docs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs.md b/docs/docs.md new file mode 100644 index 0000000..e69de29 diff --git a/examples/.gitkeep b/examples/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/hello-world/.gitkeep b/examples/hello-world/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..fb0d91f --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/HETIC-MT-P2021/framework_project + +go 1.15 + +require github.com/gorilla/mux v1.8.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5350288 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= diff --git a/internal/.gitkeep b/internal/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/main.go b/main.go new file mode 100644 index 0000000..f12e651 --- /dev/null +++ b/main.go @@ -0,0 +1,52 @@ +package main + +import ( + "context" + "github.com/gorilla/mux" // need to use dep for package management + "log" + "net/http" + "os" + "os/signal" + "syscall" + "time" +) + +func TestEndpoint(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("Test is what we usually do")) +} + +func main() { + router := mux.NewRouter() + router.HandleFunc("/test", TestEndpoint).Methods("GET") + + srv := &http.Server{ + Addr: ":8080", + Handler: router, + } + + done := make(chan os.Signal, 1) + signal.Notify(done, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) + + go func() { + if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Fatalf("listen: %s\n", err) + } + }() + log.Print("Server Started") + + <-done + log.Print("Server Stopped") + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer func() { + // extra handling here + cancel() + }() + + if err := srv.Shutdown(ctx); err != nil { + log.Fatalf("Server Shutdown Failed:%+v", err) + } + log.Print("Server Exited Properly") + +} \ No newline at end of file diff --git a/pkg/.gitkeep b/pkg/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/.gitkeep b/test/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/website/.gitkeep b/website/.gitkeep new file mode 100644 index 0000000..e69de29