package main import ( "esxlib/api/cloud" "github.com/urfave/cli/v2" ) var ( apiAddressFlag = cli.StringFlag{ Name: "api.address", Value: "127.0.0.1:1213", Usage: "The address of the API server", } apiTokenFlag = cli.StringFlag{ Name: "api.token", Value: "", Usage: "The api token for the api if required", } ) var globalFlags = []cli.Flag{ &apiAddressFlag, &apiTokenFlag, } var commands = []*cli.Command{ { Name: "vm", Aliases: []string{"vm"}, Usage: "vm commands", Description: "vm commands", Subcommands: vmCommands, }, { Name: "zones", Aliases: []string{"zone"}, Usage: "zone commands", Description: "zone commands", Subcommands: zoneCommands, }, { Name: "networks", Aliases: []string{"net", "nets"}, Usage: "network commands", Description: "network commands", Subcommands: netCommands, }, } func mustGetClient(ctx *cli.Context) *cloud.Client { apiAddress := ctx.String(apiAddressFlag.Name) apiToken := ctx.String(apiTokenFlag.Name) client, err := cloud.NewClient(apiAddress, apiToken, true) if err != nil { panic(err) } return client }