aboutsummaryrefslogtreecommitdiff
path: root/commands/account/compose.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/account/compose.go')
-rw-r--r--commands/account/compose.go24
1 files changed, 15 insertions, 9 deletions
diff --git a/commands/account/compose.go b/commands/account/compose.go
index 039eb92..24e460b 100644
--- a/commands/account/compose.go
+++ b/commands/account/compose.go
@@ -24,13 +24,17 @@ func (Compose) Complete(aerc *widgets.Aerc, args []string) []string {
}
func (Compose) Execute(aerc *widgets.Aerc, args []string) error {
- body, err := buildBody(args)
+ body, template, err := buildBody(args)
if err != nil {
return err
}
acct := aerc.SelectedAccount()
- composer := widgets.NewComposer(aerc,
- aerc.Config(), acct.AccountConfig(), acct.Worker(), nil)
+
+ composer, err := widgets.NewComposer(aerc,
+ aerc.Config(), acct.AccountConfig(), acct.Worker(), template, nil)
+ if err != nil {
+ return err
+ }
tab := aerc.NewTab(composer, "New email")
composer.OnHeaderChange("Subject", func(subject string) {
if subject == "" {
@@ -44,11 +48,11 @@ func (Compose) Execute(aerc *widgets.Aerc, args []string) error {
return nil
}
-func buildBody(args []string) (string, error) {
- var body, headers string
- opts, optind, err := getopt.Getopts(args, "H:")
+func buildBody(args []string) (string, string, error) {
+ var body, template, headers string
+ opts, optind, err := getopt.Getopts(args, "H:T:")
if err != nil {
- return "", err
+ return "", "", err
}
for _, opt := range opts {
switch opt.Option {
@@ -60,11 +64,13 @@ func buildBody(args []string) (string, error) {
} else {
headers += opt.Value + ":\n"
}
+ case 'T':
+ template = opt.Value
}
}
posargs := args[optind:]
if len(posargs) > 1 {
- return "", errors.New("Usage: compose [-H] [body]")
+ return "", template, errors.New("Usage: compose [-H] [body]")
}
if len(posargs) == 1 {
body = posargs[0]
@@ -76,5 +82,5 @@ func buildBody(args []string) (string, error) {
body = headers + "\n\n"
}
}
- return body, nil
+ return body, template, nil
}