package main import ( "flag" "fmt" "log" "net/http" "github.com/gorilla/mux" ) var ( // Store a list of categories categories []string // Threshold defining how old a category must be before it is considered "to // old" (in seconds) categoryAgeThreshold int // Define the port the server should listen on port int ) func main() { // Parse the command line flags initFlags() // Define a new gorilla/mux router and define some endpoints r := mux.NewRouter() r.HandleFunc("/v1/", indexHandler) r.HandleFunc("/v1/dumpall", dumpallHandler) r.HandleFunc("/v1/all", printAllHandler) r.HandleFunc("/v1/{station}/{name}", getHandler) // Start the http server using the port provided using command line arguments // The Default port is 8080 log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", port), r)) } func initFlags() { flag.IntVar(&port, "p", 8080, "the port the server should listen on") flag.IntVar(&categoryAgeThreshold, "a", 3600, "max category age in seconds") flag.Parse() }