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:
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"