main.go 877 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "os"
  6. "time"
  7. "github.com/tylerb/graceful"
  8. "git.lattuga.net/boyska/megauploader"
  9. )
  10. func main() {
  11. dump := flag.Bool("dump", false, "Do not run; dump the configuration as it is loaded instead")
  12. cfgfile := flag.String("cfg", "/etc/megauploader/config.yaml", "Location of the configuration file")
  13. addr := flag.String("addr", "localhost:8000", "Listen address")
  14. flag.Parse()
  15. cfg, err := megauploader.ParseConfFile(*cfgfile)
  16. if err != nil {
  17. fmt.Fprintln(os.Stderr, err)
  18. os.Exit(1)
  19. }
  20. if errs := cfg.Validate(); len(errs) > 0 {
  21. fmt.Fprintln(os.Stderr, "Configuration errors:")
  22. for _, e := range errs {
  23. fmt.Fprintln(os.Stderr, " -", e)
  24. }
  25. os.Exit(1)
  26. }
  27. if *dump {
  28. fmt.Println(cfg.Pretty())
  29. os.Exit(0)
  30. }
  31. mu := megauploader.NewMegaUploader(cfg)
  32. mux := mu.SetupRoutes()
  33. graceful.Run(*addr, 15*time.Second, mux)
  34. }