Publish HTML quickly. https://html.house
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 line
1.5 KiB

  1. package htmlhouse
  2. import (
  3. "github.com/danryan/env"
  4. "regexp"
  5. "strings"
  6. )
  7. type config struct {
  8. StaticDir string `env:"key=STATIC_DIR default=static"`
  9. DBName string `env:"key=DB_DB required=true"`
  10. DBUser string `env:"key=DB_USER required=true"`
  11. DBPassword string `env:"key=DB_PASSWORD required=true"`
  12. DBHost string `env:"key=DB_HOST default=localhost"`
  13. PrivateKey string `env:"key=PRIVATE_KEY require=true"`
  14. PublicKey string `env:"key=PUBLIC_KEY require=true"`
  15. HostName string `env:"key=HOST default=https://html.house"`
  16. ServerPort int `env:"key=PORT default=8080"`
  17. AutoApprove bool `env:"key=AUTO_APPROVE default=false"`
  18. PreviewsHost string `env:"key=PREVIEWS_HOST`
  19. AdminPass string `env:"key=ADMIN_PASS default=uhoh"`
  20. BrowseItems int `env:"key=BROWSE_ITEMS default=10"`
  21. BlacklistTerms string `env:"key=BLACKLIST_TERMS"`
  22. BlacklistReg *regexp.Regexp
  23. // Twitter configuration
  24. TwitterConsumerKey string `env:"key=TWITTER_KEY default=notreal"`
  25. TwitterConsumerSecret string `env:"key=TWITTER_SECRET default=notreal"`
  26. TwitterToken string `env:"key=TWITTER_TOKEN default=notreal"`
  27. TwitterTokenSecret string `env:"key=TWITTER_TOKEN_SECRET default=notreal"`
  28. }
  29. func newConfig() (*config, error) {
  30. cfg := &config{}
  31. if err := env.Process(cfg); err != nil {
  32. return cfg, err
  33. }
  34. // Process anything
  35. termsReg := `(?i)\b` + cfg.BlacklistTerms + `\b`
  36. termsReg = strings.Replace(termsReg, ",", `\b|\b`, -1)
  37. cfg.BlacklistReg = regexp.MustCompile(termsReg)
  38. // Return result
  39. return cfg, nil
  40. }