package main import ( "flag" "net" "os" "strings" "github.com/coreos/go-systemd/v22/activation" ) var ( addr = flag.String("addr", "", "TCP listen address or UNIX socket path") useSystemd = flag.Bool("systemd-activation", false, "use systemd activation") ) func newSystemdListener() (net.Listener, error) { listeners, err := activation.Listeners() if err != nil { return nil, err } return listeners[0], nil } func newListener() (net.Listener, error) { if *useSystemd { return newSystemdListener() } network := "tcp" address := *addr if strings.HasPrefix(address, "unix:") { network = "unix" address = address[5:] os.Remove(address) } return net.Listen(network, address) }