diff options
author | Jason Cox <dev@jasoncarloscox.com> | 2022-10-17 13:19:33 -0400 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2022-10-17 22:41:00 +0200 |
commit | 7647dfb8b47edbcb8080bd0327529383142ec888 (patch) | |
tree | 80cdd42050598815e0fa872745def3cc7d2bea80 /config/config.go | |
parent | 8ffcd3e5adfa008f33989d4589a47ae1cd1a5e68 (diff) | |
download | aerc-7647dfb8b47edbcb8080bd0327529383142ec888.tar.gz |
compose: warn before sending without attachment
Prevent the embarrassing forgotten attachment scenario by warning the
user before sending a message that may need an attachment but does not
have one. Whether a message needs an attachment is determined by testing
a configurable regex against the message body.
Signed-off-by: Jason Cox <dev@jasoncarloscox.com>
Acked-by: Robin Jarry <robin@jarry.cc>
Diffstat (limited to 'config/config.go')
-rw-r--r-- | config/config.go | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/config/config.go b/config/config.go index e40d964a..0de1780c 100644 --- a/config/config.go +++ b/config/config.go @@ -203,10 +203,11 @@ type BindingConfigContext struct { } type ComposeConfig struct { - Editor string `ini:"editor"` - HeaderLayout [][]string `ini:"-"` - AddressBookCmd string `ini:"address-book-cmd"` - ReplyToSelf bool `ini:"reply-to-self"` + Editor string `ini:"editor"` + HeaderLayout [][]string `ini:"-"` + AddressBookCmd string `ini:"address-book-cmd"` + ReplyToSelf bool `ini:"reply-to-self"` + NoAttachmentWarning *regexp.Regexp `ini:"-"` } type FilterConfig struct { @@ -523,6 +524,18 @@ func (config *AercConfig) LoadConfig(file *ini.File) error { if key == "header-layout" { config.Compose.HeaderLayout = parseLayout(val) } + + if key == "no-attachment-warning" && len(val) > 0 { + re, err := regexp.Compile("(?im)" + val) + if err != nil { + return fmt.Errorf( + "Invalid no-attachment-warning '%s': %w", + val, err, + ) + } + + config.Compose.NoAttachmentWarning = re + } } } |