| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- #!/usr/bin/env python3
 
- import argparse
 
- import os
 
- import struct
 
- def create_header(args, size):
 
- 	header = struct.pack('32s32s32s32s32s',
 
- 		args.part_name.encode('ascii'),
 
- 		str(size).encode('ascii'),
 
- 		args.part_version.encode('ascii'),
 
- 		"".encode('ascii'),
 
- 		args.rootfs_version.encode('ascii'))
 
- 	return header
 
- def create_output(args):
 
- 	in_st = os.stat(args.input_file)
 
- 	in_size = in_st.st_size
 
- 	header = create_header(args, in_size)
 
- 	print(header)
 
- 	in_f = open(args.input_file, 'r+b')
 
- 	in_bytes = in_f.read(in_size)
 
- 	in_f.close()
 
- 	out_f = open(args.output_file, 'w+b')
 
- 	out_f.write(header)
 
- 	out_f.write(in_bytes)
 
- 	out_f.close()
 
- def main():
 
- 	global args
 
- 	parser = argparse.ArgumentParser(description='')
 
- 	parser.add_argument('--input-file',
 
- 		dest='input_file',
 
- 		action='store',
 
- 		type=str,
 
- 		help='Input file')
 
- 	parser.add_argument('--output-file',
 
- 		dest='output_file',
 
- 		action='store',
 
- 		type=str,
 
- 		help='Output file')
 
- 	parser.add_argument('--part-name',
 
- 		dest='part_name',
 
- 		action='store',
 
- 		type=str,
 
- 		help='Partition Name')
 
- 	parser.add_argument('--part-version',
 
- 		dest='part_version',
 
- 		action='store',
 
- 		type=str,
 
- 		help='Partition Version')
 
- 	parser.add_argument('--rootfs-version',
 
- 		dest='rootfs_version',
 
- 		action='store',
 
- 		type=str,
 
- 		help='RootFS lib version')
 
- 	args = parser.parse_args()
 
- 	if not args.rootfs_version:
 
- 		args.rootfs_version = ""
 
- 	if ((not args.input_file) or
 
- 	    (not args.output_file) or
 
- 	    (not args.part_name) or
 
- 	    (not args.part_version)):
 
- 		parser.print_help()
 
- 	create_output(args)
 
- main()
 
 
  |