summaryrefslogtreecommitdiff
path: root/email-print-mime-structure
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2019-11-02 01:28:19 -0400
committerSean Whitton <spwhitton@spwhitton.name>2019-11-02 08:44:19 -0700
commit38e7f88f670589e1ffd61083a0f551369ba96d98 (patch)
treebd80ba836b52439986850fdb15d0e9f9d4bf3294 /email-print-mime-structure
parenta9a3a085c2f407f1dac144eba58087a7ebcf4e35 (diff)
downloadmailscripts-38e7f88f670589e1ffd61083a0f551369ba96d98.tar.gz
email-print-mime-structure: parse argments
This adds a -h and --help option, which is currently pretty useless. But the argparse will become useful shortly. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Diffstat (limited to 'email-print-mime-structure')
-rwxr-xr-xemail-print-mime-structure9
1 files changed, 8 insertions, 1 deletions
diff --git a/email-print-mime-structure b/email-print-mime-structure
index 5eb94e0..38dc8d9 100755
--- a/email-print-mime-structure
+++ b/email-print-mime-structure
@@ -33,11 +33,15 @@ import sys
import email
import logging
+from argparse import ArgumentParser, Namespace
from typing import Optional, Union, List, Tuple, Any
from email.charset import Charset
from email.message import Message
class MimePrinter(object):
+ def __init__(self, args:Namespace):
+ self.args = args
+
def print_part(self, z:Message, prefix:str) -> None:
ofname:Optional[str] = z.get_filename()
fname:str = '' if ofname is None else f' [{ofname}]'
@@ -81,10 +85,13 @@ class MimePrinter(object):
self.print_part(z, prefix+'─╴')
def main() -> None:
+ parser:ArgumentParser = ArgumentParser(description='Read RFC2822 MIME message from stdin and emit a tree diagram to stdout.',
+ epilog="Example: email-print-mime-structure < message.eml")
+ args:Namespace = parser.parse_args()
msg:Union[Message, str, int, Any] = email.message_from_file(sys.stdin)
if isinstance(msg, Message):
- printer:MimePrinter = MimePrinter()
+ printer:MimePrinter = MimePrinter(args)
printer.test(msg, '└')
else:
logging.error('Input was not an e-mail message')