Implement header-regex-match filters

This commit is contained in:
Drew DeVault 2019-03-31 14:42:18 -04:00
commit 8e5ed2a161
3 changed files with 39 additions and 8 deletions

View file

@ -117,8 +117,25 @@ func NewMessageViewer(conf *config.AercConfig, store *lib.MessageStore,
case config.FILTER_MIMETYPE:
if fnmatch.Match(f.Filter, mime, 0) {
filter = exec.Command(cmd[0], cmd[1:]...)
fmt.Printf("Using filter for %s: %s\n", mime, f.Command)
}
case config.FILTER_HEADER:
var header string
switch f.Header {
case "subject":
header = msg.Envelope.Subject
case "from":
header = formatAddresses(msg.Envelope.From)
case "to":
header = formatAddresses(msg.Envelope.To)
case "cc":
header = formatAddresses(msg.Envelope.Cc)
}
if f.Regex.Match([]byte(header)) {
filter = exec.Command(cmd[0], cmd[1:]...)
}
}
if filter != nil {
break
}
}
if filter != nil {