Mercurial > lcfOS
view python/makeinitrd.py @ 276:56d37ed4b4d2
phaa
author | Windel Bouwman |
---|---|
date | Mon, 16 Sep 2013 21:51:17 +0200 |
parents | 8b2e5f3cd579 |
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)