72204d1f24d4082acc750b73dcda6981edd21a38 — Daniel Bridges 13 days ago 5493af8
Add optional body argument to compose command
2 files changed, 15 insertions(+), 4 deletions(-)

M commands/account/compose.go
M doc/aerc.1.scd
M commands/account/compose.go => commands/account/compose.go +14 -3
@@ 1,6 1,7 @@ package account
  
  import (
+ 	"errors"
  	"regexp"
  	"strings"
  


@@ 22,7 23,6 @@ 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 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 @@ }
  		}
  	}
+ 	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
  }

M doc/aerc.1.scd => doc/aerc.1.scd +1 -1
@@ 139,7 139,7 @@ *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).