diff options
Diffstat (limited to 'tools/write-mime-multipart.py')
-rwxr-xr-x | tools/write-mime-multipart.py | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/tools/write-mime-multipart.py b/tools/write-mime-multipart.py deleted file mode 100755 index 0a67d4c5..00000000 --- a/tools/write-mime-multipart.py +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/env python - -import sys, os -import email -import mimetypes -import re - -mimetypes.types_map['.sh'] = 'text/x-shellscript' -cloud_config_mark_strings = { '#!': 'text/x-shellscript', '#include': 'text/x-include-url', - '#cloud-config': 'text/cloud-config', '#upstart-job': 'text/upstart-job', - '#cloud-boothook': 'text/cloud-boothook' - } -def write_mime_multipart(): - multipart_msg = email.mime.Multipart.MIMEMultipart() - for arg in sys.argv[1:]: - if ',' in arg: - (msg_file, msg_type) = arg.split(',') - else: - msg_file = arg - msg_type = None - - msg_file = os.path.expanduser(msg_file) - if not os.path.isfile(msg_file): - print >> sys.stderr, "Can't find file %s" % arg - exit(1) - - if not msg_type: msg_type = get_type_from_file(arg) - msg = email.mime.base.MIMEBase(*msg_type.split('/')) - msg.set_payload(open(msg_file, 'r').read()) - multipart_msg.attach(msg) - - print multipart_msg.as_string() - -def get_type_from_file(filename): - first_line = open(filename).readline() - m = re.match('Content-Type: (\w+/\w+)', first_line) - if m: - return m.groups[1] - else: - for mark_string, mime_type in cloud_config_mark_strings.items(): - if first_line.startswith(mark_string): - return mime_type - return mimetypes.guess_type(filename)[0] or 'text/plain' - -if __name__ == '__main__': - if len(sys.argv) == 1 or '-h' in sys.argv or '--help' in sys.argv: - print "Usage: %s file1,application/cloud-config file2.sh ..." % os.path.basename(sys.argv[0]) - print "MIME Multipart message will be written to STDOUT" - exit(0) - write_mime_multipart() - |