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.
 
 
 
 

56 lines
1.6 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. AllowPublish bool `env:"key=ALLOW_PUBLISH default=true"`
  19. PreviewsHost string `env:"key=PREVIEWS_HOST"`
  20. AdminPass string `env:"key=ADMIN_PASS default=uhoh"`
  21. BrowseItems int `env:"key=BROWSE_ITEMS default=10"`
  22. BlacklistTerms string `env:"key=BLACKLIST_TERMS"`
  23. BlacklistReg *regexp.Regexp
  24. // Mode
  25. WFMode bool `env:"key=WF_MODE"`
  26. // Twitter configuration
  27. TwitterConsumerKey string `env:"key=TWITTER_KEY default=notreal"`
  28. TwitterConsumerSecret string `env:"key=TWITTER_SECRET default=notreal"`
  29. TwitterToken string `env:"key=TWITTER_TOKEN default=notreal"`
  30. TwitterTokenSecret string `env:"key=TWITTER_TOKEN_SECRET default=notreal"`
  31. }
  32. func newConfig() (*config, error) {
  33. cfg := &config{}
  34. if err := env.Process(cfg); err != nil {
  35. return cfg, err
  36. }
  37. // Process anything
  38. termsReg := `(?i)\b` + cfg.BlacklistTerms + `\b`
  39. termsReg = strings.Replace(termsReg, ",", `\b|\b`, -1)
  40. cfg.BlacklistReg = regexp.MustCompile(termsReg)
  41. // Return result
  42. return cfg, nil
  43. }