summaryrefslogtreecommitdiff
path: root/Doc/lib/email-unpack.py
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/lib/email-unpack.py')
-rw-r--r--Doc/lib/email-unpack.py65
1 files changed, 25 insertions, 40 deletions
diff --git a/Doc/lib/email-unpack.py b/Doc/lib/email-unpack.py
index b166fdba7d..fc05d99109 100644
--- a/Doc/lib/email-unpack.py
+++ b/Doc/lib/email-unpack.py
@@ -1,59 +1,44 @@
#!/usr/bin/env python
-"""Unpack a MIME message into a directory of files.
+"""Unpack a MIME message into a directory of files."""
-Usage: unpackmail [options] msgfile
-
-Options:
- -h / --help
- Print this message and exit.
-
- -d directory
- --directory=directory
- Unpack the MIME message into the named directory, which will be
- created if it doesn't already exist.
-
-msgfile is the path to the file containing the MIME message.
-"""
-
-import sys
import os
-import getopt
+import sys
+import email
import errno
import mimetypes
-import email
-
-def usage(code, msg=''):
- print >> sys.stderr, __doc__
- if msg:
- print >> sys.stderr, msg
- sys.exit(code)
+from optparse import OptionParser
def main():
- try:
- opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'directory='])
- except getopt.error, msg:
- usage(1, msg)
-
- dir = os.curdir
- for opt, arg in opts:
- if opt in ('-h', '--help'):
- usage(0)
- elif opt in ('-d', '--directory'):
- dir = arg
+ parser = OptionParser(usage="""\
+Unpack a MIME message into a directory of files.
+
+Usage: %prog [options] msgfile
+""")
+ parser.add_option('-d', '--directory',
+ type='string', action='store',
+ help="""Unpack the MIME message into the named
+ directory, which will be created if it doesn't already
+ exist.""")
+ opts, args = parser.parse_args()
+ if not opts.directory:
+ parser.print_help()
+ sys.exit(1)
try:
msgfile = args[0]
except IndexError:
- usage(1)
+ parser.print_help()
+ sys.exit(1)
try:
- os.mkdir(dir)
+ os.mkdir(opts.directory)
except OSError, e:
# Ignore directory exists error
- if e.errno <> errno.EEXIST: raise
+ if e.errno <> errno.EEXIST:
+ raise
fp = open(msgfile)
msg = email.message_from_file(fp)
@@ -74,8 +59,8 @@ def main():
ext = '.bin'
filename = 'part-%03d%s' % (counter, ext)
counter += 1
- fp = open(os.path.join(dir, filename), 'wb')
- fp.write(part.get_payload(decode=1))
+ fp = open(os.path.join(opts.directory, filename), 'wb')
+ fp.write(part.get_payload(decode=True))
fp.close()