mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-27 03:48:33 +00:00
Add a Python utility to help convert the Mail.app saved 'Raw Message Source' .eml file to a git-am friendly file.
llvm-svn: 131924
This commit is contained in:
parent
79763a42ab
commit
b5aa97ecc5
65
lldb/utils/git-svn/convert.py
Executable file
65
lldb/utils/git-svn/convert.py
Executable file
@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Convert the raw message sources from git patch emails to git-am friendly files.
|
||||
|
||||
Usage:
|
||||
|
||||
1. Mail.app -> Save As -> api.eml (Raw Message Source)
|
||||
2. .../convert.py api.eml
|
||||
3. git am --signoff < api.eml
|
||||
4. git commit -a
|
||||
"""
|
||||
|
||||
import os, re, sys
|
||||
import StringIO
|
||||
|
||||
def usage(problem_file=None):
|
||||
if problem_file:
|
||||
print "%s is not a file" % problem_file
|
||||
print "Usage: convert.py raw-message-source [raw-message-source2 ...]"
|
||||
sys.exit(0)
|
||||
|
||||
def do_convert(file):
|
||||
"""Skip all preceding mail message headers until 'From: ' is encountered.
|
||||
Then for each line ('From: ' header included), replace the dos style CRLF
|
||||
end-of-line with unix style LF end-of-line.
|
||||
"""
|
||||
print "converting %s ..." % file
|
||||
|
||||
with open(file, 'r') as f_in:
|
||||
content = f_in.read()
|
||||
|
||||
# The new content to be written back to the same file.
|
||||
new_content = StringIO.StringIO()
|
||||
|
||||
# Boolean flag controls whether to start printing lines.
|
||||
from_header_seen = False
|
||||
|
||||
# By default, splitlines() don't include line breaks. CRLF should be gone.
|
||||
for line in content.splitlines():
|
||||
# Wait till we scan the 'From: ' header before start printing the lines.
|
||||
if not from_header_seen:
|
||||
if not line.startswith('From: '):
|
||||
continue
|
||||
else:
|
||||
from_header_seen = True
|
||||
|
||||
print >> new_content, line
|
||||
|
||||
with open(file, 'w') as f_out:
|
||||
f_out.write(new_content.getvalue())
|
||||
|
||||
print "done"
|
||||
|
||||
def main():
|
||||
if len(sys.argv) == 1:
|
||||
usage()
|
||||
# Convert the raw message source one by one.
|
||||
for file in sys.argv[1:]:
|
||||
if not os.path.isfile(file):
|
||||
usage(file)
|
||||
do_convert(file)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@ -137,11 +137,11 @@ def do_lldb_disassembly(lldb_commands, exe, disassemble_options, num_symbols, sy
|
||||
count = count + 1
|
||||
print "returning symbol:", s.GetName()
|
||||
yield s.GetName()
|
||||
#print "start address:", s.GetStartAddress()
|
||||
#print "end address:", s.GetEndAddress()
|
||||
#s.GetDescription(stream)
|
||||
#print "symbol description:", stream.GetData()
|
||||
#stream.Clear()
|
||||
print "start address:", s.GetStartAddress()
|
||||
print "end address:", s.GetEndAddress()
|
||||
s.GetDescription(stream)
|
||||
print "symbol description:", stream.GetData()
|
||||
stream.Clear()
|
||||
|
||||
# Disassembly time.
|
||||
for symbol in symbol_iter(num_symbols, symbols_to_disassemble, target):
|
||||
|
Loading…
x
Reference in New Issue
Block a user