From 58951ca594051b14c9b8cf438220338c18cbe46e Mon Sep 17 00:00:00 2001 From: bryanl Date: Wed, 20 Jan 2016 19:16:12 -0500 Subject: [PATCH] add headers and format support to all actions --- commands/account.go | 7 ++--- commands/actions.go | 10 +++---- commands/auth.go | 7 ++--- commands/doit.go | 9 +++++- commands/domains.go | 24 ++++++---------- commands/droplet_actions.go | 51 +++++++++++---------------------- commands/droplets.go | 30 +++++++------------ commands/floating_ip_actions.go | 9 ++---- commands/floating_ips.go | 12 +++----- commands/image_actions.go | 6 ++-- commands/images.go | 21 +++++--------- commands/regions.go | 3 +- commands/sizes.go | 3 +- commands/ssh.go | 2 +- commands/sshkeys.go | 18 ++++-------- 15 files changed, 78 insertions(+), 134 deletions(-) diff --git a/commands/account.go b/commands/account.go index c828138b2..14b812ac8 100644 --- a/commands/account.go +++ b/commands/account.go @@ -9,16 +9,15 @@ import ( // Account creates the account commands heirarchy. func Account() *cobra.Command { - cmdAccount := &cobra.Command{ + cmd := &cobra.Command{ Use: "account", Short: "account commands", Long: "account is used to access account commands", } - cmdAccountGet := cmdBuilder(RunAccountGet, "get", "get account", writer, aliasOpt("g")) - cmdAccount.AddCommand(cmdAccountGet) + cmdBuilder(cmd, RunAccountGet, "get", "get account", writer, aliasOpt("g")) - return cmdAccount + return cmd } // RunAccountGet runs account get. diff --git a/commands/actions.go b/commands/actions.go index c90810985..82475cbf7 100644 --- a/commands/actions.go +++ b/commands/actions.go @@ -11,19 +11,17 @@ import ( // Actions creates the action commands heirarchy. func Actions() *cobra.Command { - cmdActions := &cobra.Command{ + cmd := &cobra.Command{ Use: "action", Short: "action commands", Long: "action is used to access action commands", } - cmdActionGet := cmdBuilder(RunCmdActionGet, "get ACTIONID", "get action", writer, aliasOpt("g")) - cmdActions.AddCommand(cmdActionGet) + cmdBuilder(cmd, RunCmdActionGet, "get ACTIONID", "get action", writer, aliasOpt("g")) - cmdActionList := cmdBuilder(RunCmdActionList, "list", "list actions", writer, aliasOpt("ls")) - cmdActions.AddCommand(cmdActionList) + cmdBuilder(cmd, RunCmdActionList, "list", "list actions", writer, aliasOpt("ls")) - return cmdActions + return cmd } // RunCmdActionList run action list. diff --git a/commands/auth.go b/commands/auth.go index 3f5e55512..455f15264 100644 --- a/commands/auth.go +++ b/commands/auth.go @@ -39,16 +39,15 @@ func (use *UnknownSchemeError) Error() string { // Auth creates auth commands for doit. func Auth() *cobra.Command { - cmdAuth := &cobra.Command{ + cmd := &cobra.Command{ Use: "auth", Short: "auth commands", Long: "auth is used to access auth commands", } - cmdAuthLogin := cmdBuilder(RunAuthLogin, "login", "login to DigitalOcean account", writer) - cmdAuth.AddCommand(cmdAuthLogin) + cmdBuilder(cmd, RunAuthLogin, "login", "login to DigitalOcean account", writer) - return cmdAuth + return cmd } // RunAuthLogin runs auth login. It communicates with doit-server to perform auth. diff --git a/commands/doit.go b/commands/doit.go index 836ef1bde..cf7fa6319 100644 --- a/commands/doit.go +++ b/commands/doit.go @@ -189,7 +189,7 @@ func aliasOpt(aliases ...string) cmdOption { } } -func cmdBuilder(cr cmdRunner, cliText, desc string, out io.Writer, options ...cmdOption) *cobra.Command { +func cmdBuilder(parent *cobra.Command, cr cmdRunner, cliText, desc string, out io.Writer, options ...cmdOption) *cobra.Command { c := &cobra.Command{ Use: cliText, Short: desc, @@ -200,10 +200,17 @@ func cmdBuilder(cr cmdRunner, cliText, desc string, out io.Writer, options ...cm }, } + if parent != nil { + parent.AddCommand(c) + } + for _, co := range options { co(c) } + addStringFlag(c, doit.ArgFormat, "", "Format") + addBoolFlag(c, doit.ArgNoHeader, false, "hide headers") + return c } diff --git a/commands/domains.go b/commands/domains.go index c76408b44..efa2efeee 100644 --- a/commands/domains.go +++ b/commands/domains.go @@ -19,18 +19,14 @@ func Domain() *cobra.Command { Long: "domain is used to access domain commands", } - cmdDomainCreate := cmdBuilder(RunDomainCreate, "create ", "create domain", writer, aliasOpt("c")) - cmd.AddCommand(cmdDomainCreate) + cmdDomainCreate := cmdBuilder(cmd, RunDomainCreate, "create ", "create domain", writer, aliasOpt("c")) addStringFlag(cmdDomainCreate, doit.ArgIPAddress, "", "IP address", requiredOpt()) - cmdDomainList := cmdBuilder(RunDomainList, "list", "list comains", writer, aliasOpt("ls")) - cmd.AddCommand(cmdDomainList) + cmdBuilder(cmd, RunDomainList, "list", "list comains", writer, aliasOpt("ls")) - cmdDomainGet := cmdBuilder(RunDomainGet, "get ", "get domain", writer, aliasOpt("g")) - cmd.AddCommand(cmdDomainGet) + cmdBuilder(cmd, RunDomainGet, "get ", "get domain", writer, aliasOpt("g")) - cmdDomainDelete := cmdBuilder(RunDomainDelete, "delete ", "delete droplet", writer, aliasOpt("g")) - cmd.AddCommand(cmdDomainDelete) + cmdBuilder(cmd, RunDomainDelete, "delete ", "delete droplet", writer, aliasOpt("g")) cmdRecord := &cobra.Command{ Use: "records", @@ -39,12 +35,10 @@ func Domain() *cobra.Command { } cmd.AddCommand(cmdRecord) - cmdRecordList := cmdBuilder(RunRecordList, "list ", "list records", writer, aliasOpt("ls")) - cmdRecord.AddCommand(cmdRecordList) + cmdRecordList := cmdBuilder(cmdRecord, RunRecordList, "list ", "list records", writer, aliasOpt("ls")) addStringFlag(cmdRecordList, doit.ArgDomainName, "", "Domain name") - cmdRecordCreate := cmdBuilder(RunRecordCreate, "create ", "create record", writer, aliasOpt("c")) - cmdRecord.AddCommand(cmdRecordCreate) + cmdRecordCreate := cmdBuilder(cmdRecord, RunRecordCreate, "create ", "create record", writer, aliasOpt("c")) addStringFlag(cmdRecordCreate, doit.ArgRecordType, "", "Record type") addStringFlag(cmdRecordCreate, doit.ArgRecordName, "", "Record name") addStringFlag(cmdRecordCreate, doit.ArgRecordData, "", "Record data") @@ -52,11 +46,9 @@ func Domain() *cobra.Command { addIntFlag(cmdRecordCreate, doit.ArgRecordPort, 0, "Record port") addIntFlag(cmdRecordCreate, doit.ArgRecordWeight, 0, "Record weight") - cmdRecordDelete := cmdBuilder(RunRecordDelete, "delete ", "delete record", writer, aliasOpt("d")) - cmdRecord.AddCommand(cmdRecordDelete) + cmdBuilder(cmdRecord, RunRecordDelete, "delete ", "delete record", writer, aliasOpt("d")) - cmdRecordUpdate := cmdBuilder(RunRecordUpdate, "update ", "update record", writer, aliasOpt("u")) - cmdRecord.AddCommand(cmdRecordUpdate) + cmdRecordUpdate := cmdBuilder(cmdRecord, RunRecordUpdate, "update ", "update record", writer, aliasOpt("u")) addIntFlag(cmdRecordUpdate, doit.ArgRecordID, 0, "Record ID") addStringFlag(cmdRecordUpdate, doit.ArgRecordType, "", "Record type") addStringFlag(cmdRecordUpdate, doit.ArgRecordName, "", "Record name") diff --git a/commands/droplet_actions.go b/commands/droplet_actions.go index e8d86283f..13a46a68b 100644 --- a/commands/droplet_actions.go +++ b/commands/droplet_actions.go @@ -38,79 +38,62 @@ func DropletAction() *cobra.Command { Long: "droplet-action is used to access droplet action commands", } - cmdDropletActionGet := cmdBuilder(RunDropletActionGet, "get", "get droplet action", writer, aliasOpt("g")) - cmd.AddCommand(cmdDropletActionGet) + cmdDropletActionGet := cmdBuilder(cmd, RunDropletActionGet, "get", "get droplet action", writer, aliasOpt("g")) addIntFlag(cmdDropletActionGet, doit.ArgActionID, 0, "Action ID", requiredOpt()) - cmdDropletActionDisableBackups := cmdBuilder(RunDropletActionDisableBackups, + cmdBuilder(cmd, RunDropletActionDisableBackups, "disable-backups ", "disable backups", writer) - cmd.AddCommand(cmdDropletActionDisableBackups) - cmdDropletActionReboot := cmdBuilder(RunDropletActionReboot, + cmdBuilder(cmd, RunDropletActionReboot, "reboot ", "reboot droplet", writer) - cmd.AddCommand(cmdDropletActionReboot) - cmdDropletActionPowerCycle := cmdBuilder(RunDropletActionPowerCycle, + cmdBuilder(cmd, RunDropletActionPowerCycle, "power-cycle ", "power cycle droplet", writer) - cmd.AddCommand(cmdDropletActionPowerCycle) - cmdDropletActionShutdown := cmdBuilder(RunDropletActionShutdown, + cmdBuilder(cmd, RunDropletActionShutdown, "shutdown ", "shutdown droplet", writer) - cmd.AddCommand(cmdDropletActionShutdown) - cmdDropletActionPowerOff := cmdBuilder(RunDropletActionPowerOff, + cmdBuilder(cmd, RunDropletActionPowerOff, "power-off ", "power off droplet", writer) - cmd.AddCommand(cmdDropletActionPowerOff) - cmdDropletActionPowerOn := cmdBuilder(RunDropletActionPowerOn, + cmdBuilder(cmd, RunDropletActionPowerOn, "power-on ", "power on droplet", writer) - cmd.AddCommand(cmdDropletActionPowerOn) - cmdDropletActionPasswordReset := cmdBuilder(RunDropletActionPasswordReset, + cmdBuilder(cmd, RunDropletActionPasswordReset, "power-reset ", "power reset droplet", writer) - cmd.AddCommand(cmdDropletActionPasswordReset) - cmdDropletActionEnableIPv6 := cmdBuilder(RunDropletActionEnableIPv6, + cmdBuilder(cmd, RunDropletActionEnableIPv6, "enable-ipv6 ", "enable ipv6", writer) - cmd.AddCommand(cmdDropletActionEnableIPv6) - cmdDropletActionEnablePrivateNetworking := cmdBuilder(RunDropletActionEnablePrivateNetworking, + cmdBuilder(cmd, RunDropletActionEnablePrivateNetworking, "enable-private-networking ", "enable private networking", writer) - cmd.AddCommand(cmdDropletActionEnablePrivateNetworking) - cmdDropletActionUpgrade := cmdBuilder(RunDropletActionUpgrade, + cmdBuilder(cmd, RunDropletActionUpgrade, "upgrade ", "upgrade droplet", writer) - cmd.AddCommand(cmdDropletActionUpgrade) - cmdDropletActionRestore := cmdBuilder(RunDropletActionRestore, + cmdDropletActionRestore := cmdBuilder(cmd, RunDropletActionRestore, "restore ", "restore backup", writer) - cmd.AddCommand(cmdDropletActionRestore) addIntFlag(cmdDropletActionRestore, doit.ArgImageID, 0, "Image ID", requiredOpt()) - cmdDropletActionResize := cmdBuilder(RunDropletActionResize, + cmdDropletActionResize := cmdBuilder(cmd, RunDropletActionResize, "resize ", "resize droplet", writer) - cmd.AddCommand(cmdDropletActionResize) addIntFlag(cmdDropletActionResize, doit.ArgImageID, 0, "Image ID", requiredOpt()) addBoolFlag(cmdDropletActionResize, doit.ArgResizeDisk, false, "Resize disk") - cmdDropletActionRebuild := cmdBuilder(RunDropletActionRebuild, + cmdDropletActionRebuild := cmdBuilder(cmd, RunDropletActionRebuild, "rebuild ", "rebuild droplet", writer) - cmd.AddCommand(cmdDropletActionRebuild) addIntFlag(cmdDropletActionRebuild, doit.ArgImageID, 0, "Image ID", requiredOpt()) - cmdDropletActionRename := cmdBuilder(RunDropletActionRename, + cmdDropletActionRename := cmdBuilder(cmd, RunDropletActionRename, "rename ", "rename droplet", writer) - cmd.AddCommand(cmdDropletActionRename) addStringFlag(cmdDropletActionRename, doit.ArgDropletName, "", "Droplet name", requiredOpt()) - cmdDropletActionChangeKernel := cmdBuilder(RunDropletActionChangeKernel, + cmdDropletActionChangeKernel := cmdBuilder(cmd, RunDropletActionChangeKernel, "change-kernel ", "change kernel", writer) - cmd.AddCommand(cmdDropletActionChangeKernel) addIntFlag(cmdDropletActionChangeKernel, doit.ArgKernelID, 0, "Kernel ID", requiredOpt()) - cmdDropletActionSnapshot := cmdBuilder(RunDropletActionSnapshot, + cmdDropletActionSnapshot := cmdBuilder(cmd, RunDropletActionSnapshot, "snapshot ", "snapshot droplet", writer) - cmd.AddCommand(cmdDropletActionSnapshot) addIntFlag(cmdDropletActionSnapshot, doit.ArgSnapshotName, 0, "Snapshot name", requiredOpt()) return cmd diff --git a/commands/droplets.go b/commands/droplets.go index 1e52d5430..b223124a6 100644 --- a/commands/droplets.go +++ b/commands/droplets.go @@ -25,16 +25,14 @@ func Droplet() *cobra.Command { Long: "droplet is used to access droplet commands", } - cmdDropletActions := cmdBuilder(RunDropletActions, "actions", "droplet actions", writer, aliasOpt("a")) - cmd.AddCommand(cmdDropletActions) + cmdDropletActions := cmdBuilder(cmd, RunDropletActions, "actions", "droplet actions", writer, aliasOpt("a")) addIntFlag(cmdDropletActions, doit.ArgDropletID, 0, "Droplet ID") - cmdDropletBackups := cmdBuilder(RunDropletBackups, "backups", "droplet backups", writer, aliasOpt("b")) - cmd.AddCommand(cmdDropletBackups) + cmdDropletBackups := cmdBuilder(cmd, RunDropletBackups, "backups", "droplet backups", writer, aliasOpt("b")) addIntFlag(cmdDropletBackups, doit.ArgDropletID, 0, "Droplet ID") - cmdDropletCreate := cmdBuilder(RunDropletCreate, "create NAME [NAME ...]", "create droplet", writer, aliasOpt("c")) - cmd.AddCommand(cmdDropletCreate) + cmdDropletCreate := cmdBuilder(cmd, RunDropletCreate, "create NAME [NAME ...]", "create droplet", writer, + aliasOpt("c")) addStringSliceFlag(cmdDropletCreate, doit.ArgSSHKeys, []string{}, "SSH Keys or fingerprints") addStringFlag(cmdDropletCreate, doit.ArgUserData, "", "User data") addStringFlag(cmdDropletCreate, doit.ArgUserDataFile, "", "User data file") @@ -46,27 +44,19 @@ func Droplet() *cobra.Command { addBoolFlag(cmdDropletCreate, doit.ArgPrivateNetworking, false, "Private networking") addStringFlag(cmdDropletCreate, doit.ArgImage, "", "Droplet image", requiredOpt()) - cmdDropletDelete := cmdBuilder(RunDropletDelete, "delete ID [ID ...]", "delete droplet", writer, aliasOpt("d", "del")) - cmd.AddCommand(cmdDropletDelete) + cmdBuilder(cmd, RunDropletDelete, "delete ID [ID ...]", "delete droplet", writer, aliasOpt("d", "del")) - cmdDropletGet := cmdBuilder(RunDropletGet, "get", "get droplet", writer, aliasOpt("g")) - cmd.AddCommand(cmdDropletGet) + cmdBuilder(cmd, RunDropletGet, "get", "get droplet", writer, aliasOpt("g")) - cmdDropletKernels := cmdBuilder(RunDropletKernels, "kernels", "droplet kernels", writer, aliasOpt("k")) - cmd.AddCommand(cmdDropletKernels) + cmdDropletKernels := cmdBuilder(cmd, RunDropletKernels, "kernels", "droplet kernels", writer, aliasOpt("k")) addIntFlag(cmdDropletKernels, doit.ArgDropletID, 0, "Droplet ID", requiredOpt()) - cmdDropletList := cmdBuilder(RunDropletList, "list [REGEX]", "list droplets", writer, aliasOpt("ls")) - cmd.AddCommand(cmdDropletList) - addStringFlag(cmdDropletList, doit.ArgFormat, "", "Format") - addBoolFlag(cmdDropletList, doit.ArgNoHeader, false, "hide headers") + cmdBuilder(cmd, RunDropletList, "list [REGEX]", "list droplets", writer, aliasOpt("ls")) - cmdDropletNeighbors := cmdBuilder(RunDropletNeighbors, "neighbors", "droplet neighbors", writer, aliasOpt("n")) - cmd.AddCommand(cmdDropletNeighbors) + cmdDropletNeighbors := cmdBuilder(cmd, RunDropletNeighbors, "neighbors", "droplet neighbors", writer, aliasOpt("n")) addIntFlag(cmdDropletNeighbors, doit.ArgDropletID, 0, "Droplet ID", requiredOpt()) - cmdDropletSnapshots := cmdBuilder(RunDropletSnapshots, "snapshots", "snapshots", writer, aliasOpt("s")) - cmd.AddCommand(cmdDropletSnapshots) + cmdDropletSnapshots := cmdBuilder(cmd, RunDropletSnapshots, "snapshots", "snapshots", writer, aliasOpt("s")) addIntFlag(cmdDropletSnapshots, doit.ArgDropletID, 0, "Droplet ID", requiredOpt()) return cmd diff --git a/commands/floating_ip_actions.go b/commands/floating_ip_actions.go index 2fa68f5a3..f26057bb5 100644 --- a/commands/floating_ip_actions.go +++ b/commands/floating_ip_actions.go @@ -16,19 +16,16 @@ func FloatingIPAction() *cobra.Command { Long: "floating IP action commands", } - cmdFloatingIPActionsGet := cmdBuilder(RunFloatingIPActionsGet, + cmdFloatingIPActionsGet := cmdBuilder(cmd, RunFloatingIPActionsGet, "get ", "get floating-ip action", writer) - cmd.AddCommand(cmdFloatingIPActionsGet) addIntFlag(cmdFloatingIPActionsGet, doit.ArgActionID, 0, "action id", requiredOpt()) - cmdFloatingIPActionsAssign := cmdBuilder(RunFloatingIPActionsAssign, + cmdFloatingIPActionsAssign := cmdBuilder(cmd, RunFloatingIPActionsAssign, "assign ", "assign a floating IP to a droplet", writer) - cmd.AddCommand(cmdFloatingIPActionsAssign) addIntFlag(cmdFloatingIPActionsAssign, doit.ArgDropletID, 0, "ID of the droplet to assign the IP to", requiredOpt()) - cmdFloatingIPActionsUnassign := cmdBuilder(RunFloatingIPActionsUnassign, + cmdBuilder(cmd, RunFloatingIPActionsUnassign, "unassign ", "unassign a floating IP to a droplet", writer) - cmd.AddCommand(cmdFloatingIPActionsUnassign) return cmd } diff --git a/commands/floating_ips.go b/commands/floating_ips.go index 6431f42fd..9710a0757 100644 --- a/commands/floating_ips.go +++ b/commands/floating_ips.go @@ -18,19 +18,15 @@ func FloatingIP() *cobra.Command { Aliases: []string{"fip"}, } - cmdFloatingIPCreate := cmdBuilder(RunFloatingIPCreate, "create", "create a floating IP", writer, aliasOpt("c")) - cmd.AddCommand(cmdFloatingIPCreate) + cmdFloatingIPCreate := cmdBuilder(cmd, RunFloatingIPCreate, "create", "create a floating IP", writer, aliasOpt("c")) addStringFlag(cmdFloatingIPCreate, doit.ArgRegionSlug, "", "Region where to create the floating IP.", requiredOpt()) addIntFlag(cmdFloatingIPCreate, doit.ArgDropletID, 0, "ID of the droplet to assign the IP to. (Optional)") - cmdFloatingIPGet := cmdBuilder(RunFloatingIPGet, "get ", "get the details of a floating IP", writer, aliasOpt("g")) - cmd.AddCommand(cmdFloatingIPGet) + cmdBuilder(cmd, RunFloatingIPGet, "get ", "get the details of a floating IP", writer, aliasOpt("g")) - cmdFloatingIPDelete := cmdBuilder(RunFloatingIPDelete, "delete ", "delete a floating IP address", writer, aliasOpt("d")) - cmd.AddCommand(cmdFloatingIPDelete) + cmdBuilder(cmd, RunFloatingIPDelete, "delete ", "delete a floating IP address", writer, aliasOpt("d")) - cmdFloatingIPList := cmdBuilder(RunFloatingIPList, "list", "list all floating IP addresses", writer, aliasOpt("ls")) - cmd.AddCommand(cmdFloatingIPList) + cmdBuilder(cmd, RunFloatingIPList, "list", "list all floating IP addresses", writer, aliasOpt("ls")) return cmd } diff --git a/commands/image_actions.go b/commands/image_actions.go index 23365273e..0db58624f 100644 --- a/commands/image_actions.go +++ b/commands/image_actions.go @@ -18,14 +18,12 @@ func ImageAction() *cobra.Command { Long: "image-action commands", } - cmdImageActionsGet := cmdBuilder(RunImageActionsGet, + cmdImageActionsGet := cmdBuilder(cmd, RunImageActionsGet, "get ", "get image action", writer) - cmd.AddCommand(cmdImageActionsGet) addIntFlag(cmdImageActionsGet, doit.ArgActionID, 0, "action id", requiredOpt()) - cmdImageActionsTransfer := cmdBuilder(RunImageActionsTransfer, + cmdImageActionsTransfer := cmdBuilder(cmd, RunImageActionsTransfer, "transfer ", "transfer imagr", writer) - cmd.AddCommand(cmdImageActionsTransfer) addStringFlag(cmdImageActionsTransfer, doit.ArgRegionSlug, "", "region", requiredOpt()) return cmd diff --git a/commands/images.go b/commands/images.go index 6587d35cd..ca5bb0c98 100644 --- a/commands/images.go +++ b/commands/images.go @@ -21,34 +21,27 @@ func Images() *cobra.Command { out := os.Stdout - cmdImagesList := cmdBuilder(RunImagesList, "list", "list images", out) - cmd.AddCommand(cmdImagesList) + cmdImagesList := cmdBuilder(cmd, RunImagesList, "list", "list images", out) addBoolFlag(cmdImagesList, doit.ArgImagePublic, false, "List public images") - cmdImagesListDistribution := cmdBuilder(RunImagesListDistribution, + cmdImagesListDistribution := cmdBuilder(cmd, RunImagesListDistribution, "list-distribution", "list distribution images", out) - cmd.AddCommand(cmdImagesListDistribution) addBoolFlag(cmdImagesListDistribution, doit.ArgImagePublic, false, "List public images") - cmdImagesListApplication := cmdBuilder(RunImagesListApplication, + cmdImagesListApplication := cmdBuilder(cmd, RunImagesListApplication, "list-application", "list application images", out) - cmd.AddCommand(cmdImagesListApplication) addBoolFlag(cmdImagesListApplication, doit.ArgImagePublic, false, "List public images") - cmdImagesListUser := cmdBuilder(RunImagesListDistribution, + cmdImagesListUser := cmdBuilder(cmd, RunImagesListDistribution, "list-user", "list user images", out) - cmd.AddCommand(cmdImagesListUser) addBoolFlag(cmdImagesListUser, doit.ArgImagePublic, false, "List public images") - cmdImagesGet := cmdBuilder(RunImagesGet, "get ", "Get image", out) - cmd.AddCommand(cmdImagesGet) + cmdBuilder(cmd, RunImagesGet, "get ", "Get image", out) - cmdImagesUpdate := cmdBuilder(RunImagesUpdate, "update ", "Update image", out) - cmd.AddCommand(cmdImagesUpdate) + cmdImagesUpdate := cmdBuilder(cmd, RunImagesUpdate, "update ", "Update image", out) addStringFlag(cmdImagesUpdate, doit.ArgImageName, "", "Image name", requiredOpt()) - cmdImagesDelete := cmdBuilder(RunImagesDelete, "delete ", "Delete image", out) - cmd.AddCommand(cmdImagesDelete) + cmdBuilder(cmd, RunImagesDelete, "delete ", "Delete image", out) return cmd } diff --git a/commands/regions.go b/commands/regions.go index e61e95735..23d11aaa5 100644 --- a/commands/regions.go +++ b/commands/regions.go @@ -16,8 +16,7 @@ func Region() *cobra.Command { Long: "region is used to access region commands", } - cmdRegionList := cmdBuilder(RunRegionList, "list", "list regions", writer) - cmd.AddCommand(cmdRegionList) + cmdBuilder(cmd, RunRegionList, "list", "list regions", writer) return cmd } diff --git a/commands/sizes.go b/commands/sizes.go index f583102f5..d2a92c433 100644 --- a/commands/sizes.go +++ b/commands/sizes.go @@ -16,8 +16,7 @@ func Size() *cobra.Command { Long: "size is used to access size commands", } - cmdSizeList := cmdBuilder(RunSizeList, "list", "list sizes", writer) - cmd.AddCommand(cmdSizeList) + cmdBuilder(cmd, RunSizeList, "list", "list sizes", writer) return cmd } diff --git a/commands/ssh.go b/commands/ssh.go index 11153c533..4a4447af8 100644 --- a/commands/ssh.go +++ b/commands/ssh.go @@ -31,7 +31,7 @@ func SSH() *cobra.Command { path := filepath.Join(usr.HomeDir, ".ssh", "id_rsa") - cmdSSH := cmdBuilder(RunSSH, "ssh", "ssh to droplet", writer) + cmdSSH := cmdBuilder(nil, RunSSH, "ssh", "ssh to droplet", writer) addStringFlag(cmdSSH, doit.ArgSSHUser, "root", "ssh user") addStringFlag(cmdSSH, doit.ArgsSSHKeyPath, path, "path to private ssh key") addIntFlag(cmdSSH, doit.ArgsSSHPort, 22, "port sshd is running on") diff --git a/commands/sshkeys.go b/commands/sshkeys.go index 619eb104c..032d098ad 100644 --- a/commands/sshkeys.go +++ b/commands/sshkeys.go @@ -21,25 +21,19 @@ func SSHKeys() *cobra.Command { Long: "sshkey is used to access ssh key commands", } - cmdSSHKeysList := cmdBuilder(RunKeyList, "list", "list ssh keys", writer, aliasOpt("ls")) - cmd.AddCommand(cmdSSHKeysList) + cmdBuilder(cmd, RunKeyList, "list", "list ssh keys", writer, aliasOpt("ls")) - cmdSSHKeysGet := cmdBuilder(RunKeyGet, "get ", "get ssh key", writer, aliasOpt("g")) - cmd.AddCommand(cmdSSHKeysGet) + cmdBuilder(cmd, RunKeyGet, "get ", "get ssh key", writer, aliasOpt("g")) - cmdSSHKeysCreate := cmdBuilder(RunKeyCreate, "create ", "create ssh key", writer, aliasOpt("c")) - cmd.AddCommand(cmdSSHKeysCreate) + cmdSSHKeysCreate := cmdBuilder(cmd, RunKeyCreate, "create ", "create ssh key", writer, aliasOpt("c")) addStringFlag(cmdSSHKeysCreate, doit.ArgKeyPublicKey, "", "Key contents", requiredOpt()) - cmdSSHKeysImport := cmdBuilder(RunKeyImport, "import ", "import ssh key", writer, aliasOpt("i")) - cmd.AddCommand(cmdSSHKeysImport) + cmdSSHKeysImport := cmdBuilder(cmd, RunKeyImport, "import ", "import ssh key", writer, aliasOpt("i")) addStringFlag(cmdSSHKeysImport, doit.ArgKeyPublicKeyFile, "", "Public key file", requiredOpt()) - cmdSSHKeysDelete := cmdBuilder(RunKeyDelete, "delete ", "delete ssh key", writer, aliasOpt("d")) - cmd.AddCommand(cmdSSHKeysDelete) + cmdBuilder(cmd, RunKeyDelete, "delete ", "delete ssh key", writer, aliasOpt("d")) - cmdSSHKeysUpdate := cmdBuilder(RunKeyUpdate, "update ", "update ssh key", writer, aliasOpt("u")) - cmd.AddCommand(cmdSSHKeysUpdate) + cmdSSHKeysUpdate := cmdBuilder(cmd, RunKeyUpdate, "update ", "update ssh key", writer, aliasOpt("u")) addStringFlag(cmdSSHKeysUpdate, doit.ArgKeyName, "", "Key name", requiredOpt()) return cmd