func runTags(args *docopt.Args, client *cluster.Client) error { if args.Bool["set"] { return runTagsSet(args, client) } else if args.Bool["del"] { return runTagsDel(args, client) } instances, err := client.HostInstances() if err != nil { return err } w := tabwriter.NewWriter(os.Stdout, 1, 2, 2, ' ', 0) defer w.Flush() listRec(w, "HOST", "TAGS") for _, inst := range instances { tags := make([]string, 0, len(inst.Meta)) for k, v := range inst.Meta { if strings.HasPrefix(k, host.TagPrefix) { tags = append(tags, fmt.Sprintf("%s=%s", strings.TrimPrefix(k, host.TagPrefix), v)) } } listRec(w, inst.Meta["id"], strings.Join(tags, " ")) } return nil }