package main import ( "context" "os" "esxlib/api/cloud" "esxlib/pkg/pprint" "github.com/urfave/cli/v2" ) var netCommands = []*cli.Command{ { Name: "list", Aliases: []string{"ls", "list"}, Usage: "list networks", Description: "list networks", Flags: []cli.Flag{ &zoneIdFlag, }, Action: netCommandList, }, } func netCommandList(ctx *cli.Context) error { client := mustGetClient(ctx) resp, err := client.NetworksList(context.Background(), &cloud.NetworksListRequest{ ZoneId: ctx.String(zoneIdFlag.Name), }) if err != nil { return err } out := pprint.NewPrinter("human", os.Stdout) out.Headers("ID", "Name", "VLAN") for _, item := range resp.Networks { out.Fields(item.Id, item.Name, item.VLAN) } out.Flush() return nil }