aboutsummaryrefslogtreecommitdiffstats
path: root/commands/account/cf.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/account/cf.go')
-rw-r--r--commands/account/cf.go31
1 files changed, 10 insertions, 21 deletions
diff --git a/commands/account/cf.go b/commands/account/cf.go
index 3cce37a3..8ec327ae 100644
--- a/commands/account/cf.go
+++ b/commands/account/cf.go
@@ -14,8 +14,8 @@ import (
)
type ChangeFolder struct {
- Account bool `opt:"-a"`
- Folder string `opt:"..." complete:"CompleteFolderAndNotmuch"`
+ Account string `opt:"-a" complete:"CompleteAccount" desc:"Change to specified account."`
+ Folder string `opt:"..." complete:"CompleteFolderAndNotmuch" desc:"Folder name."`
}
func init() {
@@ -34,20 +34,12 @@ func (ChangeFolder) Aliases() []string {
return []string{"cf"}
}
-func (c *ChangeFolder) CompleteFolderAndNotmuch(arg string) []string {
- var acct *app.AccountView
+func (c *ChangeFolder) CompleteAccount(arg string) []string {
+ return commands.FilterList(app.AccountNames(), arg, commands.QuoteSpace)
+}
- args := opt.LexArgs(c.Folder)
- if c.Account {
- accountName, _ := args.ArgSafe(0)
- if args.Count() <= 1 && arg == accountName {
- return commands.FilterList(
- app.AccountNames(), arg, commands.QuoteSpace)
- }
- acct, _ = app.Account(accountName)
- } else {
- acct = app.SelectedAccount()
- }
+func (c *ChangeFolder) CompleteFolderAndNotmuch(arg string) []string {
+ acct := app.SelectedAccount()
if acct == nil {
return nil
}
@@ -77,15 +69,12 @@ func (c *ChangeFolder) CompleteFolderAndNotmuch(arg string) []string {
func (c ChangeFolder) Execute([]string) error {
var target string
var acct *app.AccountView
+ var err error
args := opt.LexArgs(c.Folder)
- if c.Account {
- names, err := args.ShiftSafe(1)
- if err != nil {
- return errors.New("<account> is required. Usage: cf -a <account> <folder>")
- }
- acct, err = app.Account(names[0])
+ if c.Account != "" {
+ acct, err = app.Account(c.Account)
if err != nil {
return err
}