aboutsummaryrefslogtreecommitdiff
blob: 4784cb5d5e271b563d90acdf26691325d21ad229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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))