summaryrefslogtreecommitdiffstats
path: root/Doc/lib/email-unpack.py
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
committerThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
commit49fd7fa4431da299196d74087df4a04f99f9c46f (patch)
tree35ace5fe78d3d52c7a9ab356ab9f6dbf8d4b71f4 /Doc/lib/email-unpack.py
parent9ada3d6e29d5165dadacbe6be07bcd35cfbef59d (diff)
downloadcpython-49fd7fa4431da299196d74087df4a04f99f9c46f.zip
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.gz
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.bz2
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
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 b166fdb..fc05d99 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()