main
1package cfg
2
3import (
4 "crypto/tls"
5 "net/http"
6)
7
8type Config struct {
9 BindAddress string
10 Mux http.Handler
11 TLS *tls.Config
12}
13
14func New(addr string, options ...Option) *Config {
15 if addr == "" {
16 addr = ":0"
17 }
18
19 c := &Config{
20 BindAddress: addr,
21 Mux: http.DefaultServeMux,
22 }
23 for _, option := range options {
24 option(c)
25 }
26 return c
27}
28
29func (c *Config) Run(server *http.Server) error {
30 if c.TLS != nil {
31 return server.ListenAndServeTLS("", "")
32 }
33 return server.ListenAndServe()
34}