diff options
authorDaniel Kahn Gillmor <>2019-11-10 11:47:36 -0500
committerSean Whitton <>2019-11-15 14:31:12 -0700
commitb9a31898cfe7fd448754a98fdaa8b4145509150d (patch)
parent8ef023c49c264bb77f2d1a64a0ba3c0630407de7 (diff)
email-print-mime-structure: change --use-gpg-agent to a simple flag
Turns out that type=bool doesn't really do what we want it to do (see, and there is no built-in easy answer for argparse to accept a boolean value sensibly (e.g. type='bool', which might be able to handle "yes" and "no" and "1" and "0" and "on" and "off" as well as "true" and "false", etc) So rather than implement all of that here, we'll just have --use-gpg-agent as a simple flag. This is an API change, but the previous API has only been out for a few days, and the tool is documented for interactive use. Signed-off-by: Daniel Kahn Gillmor <>
2 files changed, 8 insertions, 9 deletions
diff --git a/email-print-mime-structure b/email-print-mime-structure
index aac8194..3f29fb9 100755
--- a/email-print-mime-structure
+++ b/email-print-mime-structure
@@ -155,9 +155,9 @@ def main() -> None:
epilog="Example: email-print-mime-structure <message.eml")
parser.add_argument('--pgpkey', metavar='KEYFILE', action='append',
help='OpenPGP Transferable Secret Key for decrypting')
- parser.add_argument('--use-gpg-agent', metavar='true|false', type=bool,
- default=False,
+ parser.add_argument('--use-gpg-agent', action='store_true',
help='Ask local GnuPG installation for decryption')
+ parser.set_defaults(use_gpg_agent=False)
if argcomplete:
diff --git a/email-print-mime-structure.1.pod b/email-print-mime-structure.1.pod
index e4634e6..7201f48 100644
--- a/email-print-mime-structure.1.pod
+++ b/email-print-mime-structure.1.pod
@@ -32,19 +32,18 @@ key.
OpenPGP secret keys listed in B<--pgpkey=> are used ephemerally, and
do not interact with any local GnuPG keyring.
-=item B<--use-gpg-agent=>I<true>|I<false>
+=item B<--use-gpg-agent>
-If I<true>, and B<email-print-mime-structure> encounters a
-PGP/MIME-encrypted part, it will try to decrypt the part using the
-secret keys found in the local installation of GnuPG. (default:
+If this flag is present, and B<email-print-mime-structure> encounters
+a PGP/MIME-encrypted part, it will try to decrypt the part using the
+secret keys found in the local installation of GnuPG.
-If both B<--pgpkey=>I<KEYFILE> and B<--use-gpg-agent=true> are
+If both B<--pgpkey=>I<KEYFILE> and B<--use-gpg-agent> are
supplied, I<KEYFILE> arguments will be tried before falling back to
If B<email-print-mime-structure> has been asked to decrypt parts with
-either B<--pgpkey=>I<KEYFILE> or with B<--use-gpg-agent=true>, and it
+either B<--pgpkey=>I<KEYFILE> or with B<--use-gpg-agent>, and it
is unable to decrypt an encrypted part, it will emit a warning to