mirror of
https://github.com/a2-4am/4cade.git
synced 2024-11-25 09:30:57 +00:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
# parameters
|
||
|
# 1 - output filename for combined data file
|
||
|
# 2,3 - input filename, output index record filename
|
||
|
# 4,5 - ""
|
||
|
# 6,7... in pairs
|
||
|
|
||
|
import os.path
|
||
|
import sys
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
output_file = sys.argv[1]
|
||
|
offset = os.path.getsize(output_file)
|
||
|
data = []
|
||
|
index_records = []
|
||
|
# read and aggregate all input files, and generate index records
|
||
|
for input_file in sys.argv[2::2]:
|
||
|
with open(input_file, 'rb') as input_handle:
|
||
|
data.append(input_handle.read())
|
||
|
size = len(data[-1])
|
||
|
index_records.append(f""";
|
||
|
; Index record for {input_file}
|
||
|
;
|
||
|
; This file is automatically generated
|
||
|
;
|
||
|
!byte 0
|
||
|
!be24 {offset:>9}
|
||
|
!le16 {size:>8}
|
||
|
""")
|
||
|
offset += size
|
||
|
|
||
|
# write out index records to specified files
|
||
|
for index_file, record in zip(sys.argv[3::2], index_records):
|
||
|
with open(index_file, 'w') as index_handle:
|
||
|
index_handle.write(record)
|
||
|
|
||
|
# write out combined data
|
||
|
with open(output_file, 'ab') as output_handle:
|
||
|
output_handle.write(b''.join(data))
|