~sircmpwn/aerc

Add optional body argument to compose command v1 PROPOSED

Pushed with a minor fix:

On Mon Aug 12, 2019 at 6:15 AM Daniel Bridges wrote:
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~sircmpwn/aerc/%3C20190812131545.66015-1-bridges2%40gmail.com%3E/mbox | git am -3
Learn more about email & git

[PATCH] Add optional body argument to compose command Export this patch

Daniel Bridges
---
 commands/account/compose.go | 17 ++++++++++++++---
 doc/aerc.1.scd              |  2 +-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/commands/account/compose.go b/commands/account/compose.go
index fa673f0..a4836b7 100644
--- a/commands/account/compose.go
+++ b/commands/account/compose.go
@@ -1,6 +1,7 @@
 package account
 
 import (
+	"errors"
 	"regexp"
 	"strings"
 
@@ -22,7 +23,6 @@ func (_ Compose) Complete(aerc *widgets.Aerc, args []string) []string {
 	return nil
 }
 
-// TODO: Accept arguments for message body
 func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
 	body, err := buildBody(args)
 	if err != nil {
@@ -46,7 +46,7 @@ func (_ Compose) Execute(aerc *widgets.Aerc, args []string) error {
 
 func buildBody(args []string) (string, error) {
 	var body, headers string
-	opts, _, err := getopt.Getopts(args, "H:")
+	opts, optind, err := getopt.Getopts(args, "H:")
 	if err != nil {
 		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 != "" {
-		body = headers + "\n\n"
+		if len(body) > 0 {
+			body = headers + "\n" + body
+		} else {
+			body = headers + "\n\n"
+		}
 	}
 	return body, nil
 }
diff --git a/doc/aerc.1.scd b/doc/aerc.1.scd
index 67bfba2..4356e8c 100644
--- a/doc/aerc.1.scd
+++ b/doc/aerc.1.scd
@@ -139,7 +139,7 @@ message list, the message in the message viewer, etc).
 *cf* <folder>
 	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
 	the current account's outgoing transport configuration. For details on
 	configuring outgoing mail delivery consult *aerc-config*(5).
-- 
2.20.1
Pushed with a minor fix:

On Mon Aug 12, 2019 at 6:15 AM Daniel Bridges wrote:
View this thread in the archives