From 42e922fab4b1c20df042f01324fc276cb2452571 Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <michael@stapelberg.de>
Date: Wed, 17 Feb 2010 23:24:26 +0100
Subject: [PATCH] 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
---
 lib/sup/crypto.rb |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/lib/sup/crypto.rb b/lib/sup/crypto.rb
index 4f75936..abbcb98 100644
--- 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
 
@@ -198,6 +209,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"
-- 
1.6.5

