diff options
Diffstat (limited to 'rewrite-commit-dump.py')
-rwxr-xr-x | rewrite-commit-dump.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/rewrite-commit-dump.py b/rewrite-commit-dump.py new file mode 100755 index 0000000..4784cb5 --- /dev/null +++ b/rewrite-commit-dump.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +import functools +import re +import sys + +mangler = [] +mangler.append(functools.partial( + re.compile(r"^\(paludis (0.1.*)\)$", re.M|re.I).sub, + r"Package-Manager: paludis-\1/")) +mangler.append(functools.partial( + re.compile(r"^\(portage version: (.*)\)$", re.M|re.I).sub, + r"Package-Manager: portage-\1")) + +write = sys.stdout.write +source = open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin +write('reset refs/heads/master\n') +while True: + x = source.readline() + if not x: + break + chunked = x.split() + if not chunked: + write(x) + continue + elif chunked[0] in ('reset', 'from'): + continue + elif chunked[0] == 'commit': + write('commit refs/heads/master\n') + continue + elif chunked[0] != 'data': + write(x) + continue + assert len(chunked) == 2 + size = int(chunked[1]) + data = source.read(size) + assert len(data) == size + for func in mangler: + data = func(data) + write("data %i\n%s" % (len(data), data)) |