Google Groups recently started rewriting the From: header, garbaging our git log. This script rewrites it back, using the Reply-To header as a still working source. Closes #11416
36 lines
757 B
Python
Executable File
36 lines
757 B
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import email
|
|
import argparse
|
|
import re
|
|
import tempfile
|
|
import os
|
|
|
|
argparser = argparse.ArgumentParser()
|
|
argparser.add_argument('emails', metavar='FILE', nargs='+',
|
|
help='Files with email message containing a patch')
|
|
|
|
|
|
args = argparser.parse_args()
|
|
|
|
bad_google = re.compile(r'".* via .*" <.*@googlegroups.com>')
|
|
|
|
temps = []
|
|
|
|
for email_file in args.emails:
|
|
e = email.message_from_file(open(email_file))
|
|
author = e.get('From')
|
|
m = re.fullmatch(bad_google, author)
|
|
if m:
|
|
e.replace_header('From', e.get('Reply-To'))
|
|
o = tempfile.NamedTemporaryFile()
|
|
o.write(bytes(e))
|
|
temps.append(o)
|
|
|
|
names = str.join(' ', [f.name for f in temps])
|
|
|
|
os.system(f'git am -3mi {names}')
|
|
|
|
|
|
|