Mercurial > lcfOS
view cos/utils/makeinitrd.py @ 111:d3068efdf045
merge
author | Windel Bouwman |
---|---|
date | Fri, 04 Jan 2013 15:26:59 +0100 |
parents | 35cc54e078dd |
children |
line wrap: on
line source
#!/usr/bin/python # Script for generation of an initial ramdisk that contains # the first programs to run. import struct import sys if len(sys.argv) < 3: print('Usage: {0} output file1 [file2] ...'.format(sys.argv[0])) sys.exit(1) outputfilename = sys.argv[1] inputFileNames = sys.argv[2:] with open(outputfilename, 'wb') as outputFile: # Amount of files: outputFile.write(struct.pack('<I', 0x1337babe)) outputFile.write(struct.pack('<I', len(inputFileNames))) for inputFileName in inputFileNames: # Magic: outputFile.write(struct.pack('<I', 0xcafebabe)) # Filename: fn = inputFileName.encode('ascii') outputFile.write(struct.pack('<I', len(fn))) outputFile.write(fn) # Data: with open(inputFileName, 'rb') as inputFile: data = inputFile.read() outputFile.write(struct.pack('<I', len(data))) outputFile.write(data)