1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
// discover provides node discovery on the command line.
package main
import (
"flag"
"fmt"
"io"
"io/ioutil"
"log"
"os"
"strings"
discover "github.com/hashicorp/go-discover"
)
func main() {
var quiet bool
var help bool
flag.BoolVar(&quiet, "q", false, "no verbose output")
flag.BoolVar(&help, "h", false, "print help")
flag.Parse()
d := &discover.Discover{}
args := flag.Args()
if help || len(args) == 0 || args[0] != "addrs" {
fmt.Println("Usage: discover addrs key=val key=val ...")
fmt.Println(d.Help())
os.Exit(0)
}
args = args[1:]
var w io.Writer = os.Stderr
if quiet {
w = ioutil.Discard
}
l := log.New(w, "", 0)
l.Printf("Registered providers: %v", d.Names())
addrs, err := d.Addrs(strings.Join(args, " "), l)
if err != nil {
l.Fatal(err)
}
fmt.Println(strings.Join(addrs, " "))
}
|