bovarys.me/fudge@v0.4.0/main.go (about)

     1  package main
     2  
     3  //go:generate go run generate.go
     4  
     5  import (
     6  	"flag"
     7  	"log"
     8  	"net/http"
     9  	"os"
    10  	"time"
    11  
    12  	"bovarys.me/fudge/config"
    13  	"bovarys.me/fudge/handler"
    14  )
    15  
    16  var configPath string
    17  
    18  func init() {
    19  	flag.StringVar(&configPath, "config", "config.yml", "path to the config file")
    20  	flag.Parse()
    21  }
    22  
    23  func main() {
    24  	cfg, err := config.NewConfig(configPath)
    25  	if err != nil {
    26  		log.Fatal(err)
    27  	}
    28  
    29  	h, err := handler.NewHandler(cfg)
    30  	if err != nil {
    31  		log.Fatal(err)
    32  	}
    33  
    34  	logger := log.New(os.Stdout, "", log.LstdFlags)
    35  
    36  	server := &http.Server{
    37  		Addr:         "localhost:8080",
    38  		Handler:      h.Router,
    39  		ReadTimeout:  10 * time.Second,
    40  		WriteTimeout: 10 * time.Second,
    41  		ErrorLog:     logger,
    42  	}
    43  
    44  	logger.Println("Starting server on", server.Addr)
    45  	log.Fatal(server.ListenAndServe())
    46  }