| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package main
- import (
- "flag"
- "log"
- "net/http"
- "os"
- "os/signal"
- "syscall"
- )
- /*
- 台南吃貨 WebApp
- License: AGPLv3
- Author: tobychui
- */
- var (
- listening = flag.String("l", ":8080", "The default endpoint for request listening")
- )
- //Safe shutdown sequence
- func shutdown() {
- os.Exit(0)
- }
- //Close handler, close db and clearn up everything before exit
- func SetupCloseHandler() {
- c := make(chan os.Signal, 2)
- signal.Notify(c, os.Interrupt, syscall.SIGTERM)
- go func() {
- <-c
- shutdown()
- }()
- }
- //Main start functin
- func main() {
- //Prase start up flags
- flag.Parse()
- //Setup Ctrl+C Listener
- SetupCloseHandler()
- //Start static file server
- fs := http.FileServer(http.Dir("./web"))
- http.Handle("/", fs)
- //Register special HTTP requests handler
- //Start WebServer
- log.Println("Standard (HTTP) Web server listening at " + *listening)
- http.ListenAndServe(*listening, nil)
- }
|