Add optional body argument to compose command

This commit is contained in:
Daniel Bridges 2019-08-12 06:15:45 -07:00 committed by Drew DeVault
parent 5493af8c8f
commit 72204d1f24
2 changed files with 15 additions and 4 deletions

View file

@ -1,6 +1,7 @@
package account package account
import ( import (
"errors"
"regexp" "regexp"
"strings" "strings"
@ -22,7 +23,6 @@ func (_ Compose) Complete(aerc *widgets.Aerc, args []string) []string {
return nil return nil
} }
// TODO: Accept arguments for message body
func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error { func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
body, err := buildBody(args) body, err := buildBody(args)
if err != nil { if err != nil {
@ -46,7 +46,7 @@ func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
func buildBody(args []string) (string, error) { func buildBody(args []string) (string, error) {
var body, headers string var body, headers string
opts, _, err := getopt.Getopts(args, "H:") opts, optind, err := getopt.Getopts(args, "H:")
if err != nil { if err != nil {
return "", err return "", err
} }
@ -62,8 +62,19 @@ func buildBody(args []string) (string, error) {
} }
} }
} }
posargs := args[optind:]
if len(posargs) > 1 {
return "", errors.New("Usage: compose [-H] [body]")
}
if len(posargs) == 1 {
body = posargs[0]
}
if headers != "" { if headers != "" {
if len(body) > 0 {
body = headers + "\n" + body
} else {
body = headers + "\n\n" body = headers + "\n\n"
} }
}
return body, nil return body, nil
} }

View file

@ -139,7 +139,7 @@ message list, the message in the message viewer, etc).
*cf* <folder> *cf* <folder>
Change the folder shown in the message list. Change the folder shown in the message list.
*compose* [-H] *compose* [-H] [<body>]
Open the compose window to send a new email. The new email will be sent with Open the compose window to send a new email. The new email will be sent with
the current account's outgoing transport configuration. For details on the current account's outgoing transport configuration. For details on
configuring outgoing mail delivery consult *aerc-config*(5). configuring outgoing mail delivery consult *aerc-config*(5).