diff options
author | Moritz Poldrack <git@moritz.sh> | 2023-03-15 22:40:37 +0100 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-04-01 01:01:09 +0200 |
commit | 2fef0f4a60c8026c156ad8d75078bccde6a540d8 (patch) | |
tree | cff6819cd0950294ee5e7c20b57582c23d628b4e /widgets | |
parent | 088d63ce934c34e113a5b3154dfcf91b49132067 (diff) | |
download | aerc-2fef0f4a60c8026c156ad8d75078bccde6a540d8.tar.gz |
config: replace triggers with hooks
Deprecate triggers and replace them with hooks. Now that aerc supports
running arbitrary ex commands over IPC, it is possible to run internal
aerc commands *and* shell commands via external shell scripts. Hooks
only allow running shell commands. Hooks info is passed via environment
variables.
Implements: https://todo.sr.ht/~rjarry/aerc/136
Signed-off-by: Moritz Poldrack <git@moritz.sh>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/account.go | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/widgets/account.go b/widgets/account.go index fdd33301..fece0846 100644 --- a/widgets/account.go +++ b/widgets/account.go @@ -11,6 +11,7 @@ import ( "git.sr.ht/~rjarry/aerc/config" "git.sr.ht/~rjarry/aerc/lib" + "git.sr.ht/~rjarry/aerc/lib/hooks" "git.sr.ht/~rjarry/aerc/lib/marker" "git.sr.ht/~rjarry/aerc/lib/sort" "git.sr.ht/~rjarry/aerc/lib/state" @@ -288,14 +289,12 @@ func (acct *AccountView) onMessage(msg types.WorkerMessage) { acct.dirlist.UiConfig(name).ReverseThreadOrder, acct.dirlist.UiConfig(name).SortThreadSiblings, func(msg *models.MessageInfo) { - if len(config.Triggers.NewEmail) == 0 { - return - } - err := acct.aerc.cmd( - config.Triggers.NewEmail, - acct.acct, msg) + err := hooks.RunHook(&hooks.MailReceived{ + MsgInfo: msg, + }) if err != nil { - acct.aerc.PushError(err.Error()) + msg := fmt.Sprintf("mail-received hook: %s", err) + acct.aerc.PushError(msg) } }, func() { if acct.dirlist.UiConfig(name).NewMessageBell { |