3 import sys
, tarfile
, os
.path
5 # usage: $0 combined.tar.gz qemu.tar.gz kvm-kmod.tar.gz
7 outname
, qemuname
, kmodname
= sys
.argv
[1:4]
9 out
= tarfile
.open(name
= outname
, mode
= 'w:gz')
11 def tarcopy(dst
, src
, transform
):
13 f
= src
.extractfile(member
)
14 member
.name
= transform(member
.name
)
15 dst
.addfile(member
, f
)
18 fname
= os
.path
.basename(fname
)
19 if fname
.endswith('.tar.gz'):
23 def transformer(old
, new
):
25 if fname
.startswith(old
+ '/'):
26 fname
= new
+ fname
[len(old
):]
30 tarcopy(out
, tarfile
.open(name
= qemuname
),
31 transformer(stem(qemuname
), stem(outname
)))
33 tarcopy(out
, tarfile
.open(name
= kmodname
),
34 transformer(stem(kmodname
), stem(outname
) + '/kvm/kernel'))