sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 4193cad838fb38ec0d41d4a5aefda6513de85be8
parent a7bca696d40934d8473be5e651cab67c94a08ea4
Author: Michael Stapelberg <michael@stapelberg.de>
Date:   Wed, 17 Feb 2010 23:24:26 +0100

Add hook gpg-args to allow the user to add/remove flags

This is useful for specifying --trust-model always only for certain
GPG calls without introducing a whole bunch of new configuration options.
An example hook (which will add the ability to send encrypted email to
people to whom you have no trust relation):

  if args =~ /--encrypt/
    "--trust-model always #{args}"
  else
    args
  end

Diffstat:
M lib/sup/crypto.rb | 12 ++++++++++++
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/lib/sup/crypto.rb b/lib/sup/crypto.rb
@@ -11,6 +11,17 @@ class CryptoManager
     [:encrypt, "Encrypt only"]
   )
 
+  HookManager.register "gpg-args", <<EOS
+Runs before gpg is executed, allowing you to modify the arguments (most
+likely you would want to add something to certain commands, like
+--trust-model always to signing/encrypting a message, but who knows).
+
+Variables:
+args: arguments for running GPG
+
+Return value: the arguments for running GPG
+EOS
+
   def initialize
     @mutex = Mutex.new
 
@@ -182,6 +193,7 @@ private
   end
 
   def run_gpg args, opts={}
+    args = HookManager.run("gpg-args", { :args => args }) || args
     cmd = "#{@cmd} #{args}"
     if opts[:interactive] && BufferManager.instantiated?
       output_fn = Tempfile.new "redwood.output"