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}