func main() { kingpin.UsageTemplate(kingpin.CompactUsageTemplate).Version("1.0").Author("Alec Thomas") kingpin.CommandLine.Help = "An example implementation of curl." switch kingpin.Parse() { case "get url": kingpin.FatalIfError(apply("GET", (*getURLURL).String()), "GET failed") case "post": kingpin.FatalIfError(applyPOST(), "POST failed") } }
func main() { kingpin.Version("0.0.1") kingpin.Parse() fmt.Printf("Would ping: %s with timeout %s and count %d", *ip, *timeout, *count) }
func main() { cfg := new(initCfg) kingpin.Flag("n", "number of ipfs nodes to initialize").Short('n').IntVar(&cfg.Count) kingpin.Flag("port", "port to start allocations from").Default("4002").Short('p').IntVar(&cfg.PortStart) kingpin.Flag("force", "force initialization (overwrite existing configs)").Short('f').BoolVar(&cfg.Force) kingpin.Flag("mdns", "turn on mdns for nodes").BoolVar(&cfg.Mdns) kingpin.Flag("bootstrap", "select bootstrapping style for cluster").Default("star").StringVar(&cfg.Bootstrap) kingpin.Flag("utp", "use utp for addresses").BoolVar(&cfg.Utp) wait := kingpin.Flag("wait", "wait for nodes to come fully online before exiting").Bool() var args []string kingpin.Arg("args", "arguments").StringsVar(&args) kingpin.Parse() if len(args) == 0 { kingpin.Usage() return } switch args[0] { case "init": if cfg.Count == 0 { fmt.Printf("please specify number of nodes: '%s init -n 10'\n", os.Args[0]) os.Exit(1) } err := IpfsInit(cfg) handleErr("ipfs init err: ", err) case "start": err := IpfsStart(*wait) handleErr("ipfs start err: ", err) case "stop", "kill": if len(args) > 1 { i, err := strconv.Atoi(args[1]) if err != nil { fmt.Println("failed to parse node number: ", err) os.Exit(1) } err = KillNode(i) if err != nil { fmt.Println("failed to kill node: ", err) } return } err := IpfsKillAll() handleErr("ipfs kill err: ", err) case "restart": err := IpfsKillAll() handleErr("ipfs kill err: ", err) err = IpfsStart(*wait) handleErr("ipfs start err: ", err) case "shell": if len(args) < 2 { fmt.Println("please specify which node you want a shell for") os.Exit(1) } n, err := strconv.Atoi(args[1]) handleErr("parse err: ", err) err = IpfsShell(n) handleErr("ipfs shell err: ", err) case "connect": if len(args) < 3 { fmt.Println("iptb connect [node] [node]") os.Exit(1) } from, err := parseRange(args[1]) if err != nil { fmt.Printf("failed to parse: %s\n", err) return } to, err := parseRange(args[2]) if err != nil { fmt.Printf("failed to parse: %s\n", err) return } for _, f := range from { for _, t := range to { err = ConnectNodes(f, t) if err != nil { fmt.Printf("failed to connect: %s\n", err) return } } } case "get": if len(args) < 3 { fmt.Println("iptb get [attr] [node]") os.Exit(1) } attr := args[1] num, err := strconv.Atoi(args[2]) handleErr("error parsing node number: ", err) val, err := GetAttr(attr, num) handleErr("error getting attribute: ", err) fmt.Println(val) default: kingpin.Usage() fmt.Println(helptext) os.Exit(1) } }