Files
weave/main.go
T

44 lines
1.1 KiB
Go

package main
import (
"flag"
"github.com/zettio/weavedns/server"
"log"
"os"
)
func main() {
log.Println(os.Args)
var (
ifaceName string
apiPath string
dnsPort int
httpPort int
wait int
watch bool
)
flag.StringVar(&ifaceName, "iface", "", "name of interface to use for multicast")
flag.StringVar(&apiPath, "api", "unix:///var/run/docker.sock", "Path to Docker API socket")
flag.IntVar(&wait, "wait", 0, "number of seconds to wait for interface to be created and come up (defaults to 0)")
flag.IntVar(&dnsPort, "dnsport", 53, "port to listen to dns requests (defaults to 53)")
flag.IntVar(&httpPort, "httpport", 6785, "port to listen to HTTP requests (defaults to 6785)")
flag.BoolVar(&watch, "watch", false, "watch the docker socket for container events")
flag.Parse()
var zone = new(weavedns.ZoneDb)
if watch {
err := weavedns.StartUpdater(apiPath, zone)
if err != nil {
log.Fatal("Unable to start watcher", err)
}
}
err := weavedns.StartServer(zone, ifaceName, dnsPort, httpPort, wait)
if err != nil {
log.Fatalf("Failed to start server: %s", err)
}
}