Skip to content

Commit

Permalink
Update commands to use args instead of flags
Browse files Browse the repository at this point in the history
Use args when it makes sense instead of creating flags for everything.
  • Loading branch information
bryanl committed Nov 16, 2015
1 parent cca1c10 commit c305067
Show file tree
Hide file tree
Showing 18 changed files with 322 additions and 271 deletions.
13 changes: 9 additions & 4 deletions commands/actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package commands

import (
"io"
"strconv"

"github.com/bryanl/doit"
"github.com/bryanl/doit/Godeps/_workspace/src/github.com/digitalocean/godo"
Expand All @@ -16,9 +17,8 @@ func Actions() *cobra.Command {
Long: "action is used to access action commands",
}

cmdActionGet := cmdBuilder(RunCmdActionGet, "get", "get action", writer, aliasOpt("g"))
cmdActionGet := cmdBuilder(RunCmdActionGet, "get ACTIONID", "get action", writer, aliasOpt("g"))
cmdActions.AddCommand(cmdActionGet)
addIntFlag(cmdActionGet, doit.ArgActionID, 0, "Action ID", requiredOpt())

cmdActionList := cmdBuilder(RunCmdActionList, "list", "list actions", writer, aliasOpt("ls"))
cmdActions.AddCommand(cmdActionList)
Expand Down Expand Up @@ -58,12 +58,17 @@ func RunCmdActionList(ns string, config doit.Config, out io.Writer, args []strin

// RunCmdActionGet runs action get.
func RunCmdActionGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
id, err := config.GetInt(ns, doit.ArgActionID)
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}

id, err := strconv.Atoi(args[0])
if err != nil {
return err
}

client := config.GetGodoClient()

a, _, err := client.Actions.Get(id)
if err != nil {
return err
Expand Down
5 changes: 2 additions & 3 deletions commands/actions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package commands

import (
"io/ioutil"
"strconv"
"testing"

"github.com/bryanl/doit"
Expand Down Expand Up @@ -57,9 +58,7 @@ func TestActionGet(t *testing.T) {
}

withTestClient(client, func(c *TestConfig) {
c.Set("test", "action-id", testAction.ID)

err := RunCmdActionGet("test", c, ioutil.Discard, []string{})
err := RunCmdActionGet("test", c, ioutil.Discard, []string{strconv.Itoa(testAction.ID)})
assert.NoError(t, err)
})
}
72 changes: 36 additions & 36 deletions commands/domains.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,16 @@ func Domain() *cobra.Command {

cmdDomainCreate := cmdBuilder(RunDomainCreate, "create", "create domain", writer, aliasOpt("c"))
cmd.AddCommand(cmdDomainCreate)
addStringFlag(cmdDomainCreate, doit.ArgDomainName, "", "Domain name", requiredOpt())
addStringFlag(cmdDomainCreate, doit.ArgIPAddress, "", "IP address", requiredOpt())

cmdDomainList := cmdBuilder(RunDomainList, "list", "list comains", writer, aliasOpt("ls"))
cmd.AddCommand(cmdDomainList)

cmdDomainGet := cmdBuilder(RunDomainGet, "get", "get domain", writer, aliasOpt("g"))
cmd.AddCommand(cmdDomainGet)
addStringFlag(cmdDomainGet, doit.ArgDomainName, "", "Domain name", requiredOpt())

cmdDomainDelete := cmdBuilder(RunDomainDelete, "delete", "delete droplet", writer, aliasOpt("g"))
cmd.AddCommand(cmdDomainDelete)
addStringFlag(cmdDomainDelete, doit.ArgDomainName, "", "Domain name", requiredOpt())

cmdRecord := &cobra.Command{
Use: "records",
Expand All @@ -46,7 +43,6 @@ func Domain() *cobra.Command {

cmdRecordCreate := cmdBuilder(RunRecordCreate, "create", "create record", writer, aliasOpt("c"))
cmdRecord.AddCommand(cmdRecordCreate)
addStringFlag(cmdRecordCreate, doit.ArgDomainName, "", "Domain name")
addStringFlag(cmdRecordCreate, doit.ArgRecordType, "", "Record type")
addStringFlag(cmdRecordCreate, doit.ArgRecordName, "", "Record name")
addStringFlag(cmdRecordCreate, doit.ArgRecordData, "", "Record data")
Expand All @@ -56,12 +52,10 @@ func Domain() *cobra.Command {

cmdRecordDelete := cmdBuilder(RunRecordDelete, "delete", "delete record", writer, aliasOpt("d"))
cmdRecord.AddCommand(cmdRecordDelete)
addStringFlag(cmdRecordDelete, doit.ArgDomainName, "", "Domain name")
addIntFlag(cmdRecordDelete, doit.ArgRecordID, 0, "Record ID")

cmdRecordUpdate := cmdBuilder(RunRecordUpdate, "update", "update record", writer, aliasOpt("u"))
cmdRecord.AddCommand(cmdRecordUpdate)
addStringFlag(cmdRecordUpdate, doit.ArgDomainName, "", "Domain name")
addIntFlag(cmdRecordUpdate, doit.ArgRecordID, 0, "Record ID")
addStringFlag(cmdRecordUpdate, doit.ArgRecordType, "", "Record type")
addStringFlag(cmdRecordUpdate, doit.ArgRecordName, "", "Record name")
Expand All @@ -75,12 +69,12 @@ func Domain() *cobra.Command {

// RunDomainCreate runs domain create.
func RunDomainCreate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()

domainName, err := config.GetString(ns, "domain-name")
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]

client := config.GetGodoClient()

ipAddress, err := config.GetString(ns, "ip-address")
if err != nil {
Expand Down Expand Up @@ -133,11 +127,12 @@ func RunDomainList(ns string, config doit.Config, out io.Writer, args []string)

// RunDomainGet retrieves a domain by name.
func RunDomainGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
id, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id := args[0]

client := config.GetGodoClient()

if len(id) < 1 {
return errors.New("invalid domain name")
Expand All @@ -153,27 +148,29 @@ func RunDomainGet(ns string, config doit.Config, out io.Writer, args []string) e

// RunDomainDelete deletes a domain by name.
func RunDomainDelete(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
name, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]

client := config.GetGodoClient()

if len(name) < 1 {
return errors.New("invalid domain name")
}

_, err = client.Domains.Delete(name)
_, err := client.Domains.Delete(name)
return err
}

// RunRecordList list records for a domain.
func RunRecordList(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
name, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]

client := config.GetGodoClient()

if len(name) < 1 {
return errors.New("domain name is missing")
Expand Down Expand Up @@ -208,11 +205,12 @@ func RunRecordList(ns string, config doit.Config, out io.Writer, args []string)

// RunRecordCreate creates a domain record.
func RunRecordCreate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
name, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]

client := config.GetGodoClient()

rType, err := config.GetString(ns, doit.ArgRecordType)
if err != nil {
Expand Down Expand Up @@ -267,11 +265,12 @@ func RunRecordCreate(ns string, config doit.Config, out io.Writer, args []string

// RunRecordDelete deletes a domain record.
func RunRecordDelete(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
domainName, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]

client := config.GetGodoClient()

recordID, err := config.GetInt(ns, doit.ArgRecordID)
if err != nil {
Expand All @@ -284,11 +283,12 @@ func RunRecordDelete(ns string, config doit.Config, out io.Writer, args []string

// RunRecordUpdate updates a domain record.
func RunRecordUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
domainName, err := config.GetString(ns, doit.ArgDomainName)
if err != nil {
return err
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]

client := config.GetGodoClient()

recordID, err := config.GetInt(ns, doit.ArgRecordID)
if err != nil {
Expand Down
22 changes: 7 additions & 15 deletions commands/domains_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,8 @@ func TestDomainsCreate(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, testDomain.Name)
c.Set(ns, doit.ArgDomainName, testDomain.Name)
c.Set(ns, doit.ArgIPAddress, "127.0.0.1")
err := RunDomainCreate(ns, c, ioutil.Discard, []string{})
err := RunDomainCreate(ns, c, ioutil.Discard, []string{testDomain.Name})
assert.NoError(t, err)
})
}
Expand Down Expand Up @@ -84,8 +82,7 @@ func TestDomainsGet(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, testDomain.Name)
err := RunDomainGet(ns, c, ioutil.Discard, []string{})
err := RunDomainGet(ns, c, ioutil.Discard, []string{testDomain.Name})
assert.NoError(t, err)
})
}
Expand Down Expand Up @@ -114,8 +111,7 @@ func TestDomainsDelete(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, testDomain.Name)
err := RunDomainDelete(ns, c, ioutil.Discard, []string{})
err := RunDomainDelete(ns, c, ioutil.Discard, []string{testDomain.Name})
assert.NoError(t, err)
})
}
Expand Down Expand Up @@ -144,9 +140,8 @@ func TestRecordsList(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, "example.com")

err := RunRecordList(ns, c, ioutil.Discard, []string{})
err := RunRecordList(ns, c, ioutil.Discard, []string{"example.com"})
assert.NoError(t, err)
assert.True(t, recordsDidList)
})
Expand Down Expand Up @@ -182,12 +177,11 @@ func TestRecordsCreate(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, "example.com")
c.Set(ns, doit.ArgRecordType, "A")
c.Set(ns, doit.ArgRecordName, "foo.example.com.")
c.Set(ns, doit.ArgRecordData, "192.168.1.1")

err := RunRecordCreate(ns, c, ioutil.Discard, []string{})
err := RunRecordCreate(ns, c, ioutil.Discard, []string{"example.com"})
assert.NoError(t, err)
})
}
Expand Down Expand Up @@ -219,9 +213,8 @@ func TestRecordsDelete(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, "example.com")
c.Set(ns, doit.ArgRecordID, 1)
err := RunRecordDelete(ns, c, ioutil.Discard, []string{})
err := RunRecordDelete(ns, c, ioutil.Discard, []string{"example.com"})
assert.NoError(t, err)
})
}
Expand All @@ -247,13 +240,12 @@ func TestRecordsUpdate(t *testing.T) {

withTestClient(client, func(c *TestConfig) {
ns := "test"
c.Set(ns, doit.ArgDomainName, "example.com")
c.Set(ns, doit.ArgRecordID, 1)
c.Set(ns, doit.ArgRecordType, "A")
c.Set(ns, doit.ArgRecordName, "foo.example.com.")
c.Set(ns, doit.ArgRecordData, "192.168.1.1")

err := RunRecordUpdate(ns, c, ioutil.Discard, []string{})
err := RunRecordUpdate(ns, c, ioutil.Discard, []string{"example.com"})
assert.NoError(t, err)
})
}
Loading

0 comments on commit c305067

Please sign in to comment.